成都网站建设小公司,茶网站开发方案,wordpress 作者 评论,wordpress 搬迁为什么采用TCP连接
为什么采用TCP连接作为底层的通讯协议#xff1f; 1.利用TCP协议本身的高级功能。比如多路复用请求和同时轮询多个连接的能力。 多路复用请求会在一个物理连接上创建多个虚拟连接#xff0c;每个虚拟连接负责流转各自的数据流。
什么时候创建TCP连接
1.…为什么采用TCP连接
为什么采用TCP连接作为底层的通讯协议 1.利用TCP协议本身的高级功能。比如多路复用请求和同时轮询多个连接的能力。 多路复用请求会在一个物理连接上创建多个虚拟连接每个虚拟连接负责流转各自的数据流。
什么时候创建TCP连接
1.kafkaProducer实例创建时启动Sender线程创建于bootstrap.servers中所有Broker的TCP连接。 2.kafkaProducer更新元数据后还会与集群所有的broker创建TCP连接。 3.Producer发消息发现没有与对应的Broker创建连接会创建连接 4.第二点中创建的连接支持在长时间空闲后被关闭
CLOSE_WAIT状态是在被动方的即主动方发起close请求FIN被动方回复ACK后被动方将进入CLOSE_WAIT状态 之后被动方才发起FIN请求进行后续的关闭操作。 这里有个疑问就是为啥被动关闭的后果是会产生大量的CLOSE_WAIT连接呢 个人的理解是被动方接下来会发起FIN请求来接着完成四次挥手中的后两次挥手。 直到看了下面的评论才明白客户端有可能会hold住这个连接比如不是使用完这个Producer实例发送完消息就进行关闭而是一直持有那么就可能会出现上面这种现象
你关闭了连接只是表示你不发送请求了。并不代表没有请求接收。这是存在 TIME_WAIT 状态的意义。所以谁发起关闭谁存在 TIME_WAIT 状态。
如何关闭TCP连接
1.客户端主动关闭 producer.cloes方法或者关闭producer进程
2.被动关闭 设置connections.max.idle.ms默认为9分钟没有使用连接broker就会主动关闭连接关闭会产生大量的CLOSE_WAIT连接