首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HttpClient与CloseableHttpClient

排查 经验丰富的程序员这个时候会调用一下netstat命令(压测不能间断),发现有大量的TCP链接处于ESTABLISHED状态,也有少部分CLOSE-WAIT状态的TCP链接。...但实际上这样的处理,socket并没有真正的close,通过之前HTTP与TCP的keep-alive的文档所说,如果HttpClient不主动发起close,链接会维持一段时间,而该链接又没有进行复用...甚至还有更严重的,TCP链接进入了CLOSE_WAIT状态,参考下图 TCP-CLOSE四次握手 ,因为某些异常服务端发起FIN,请求端被动关闭进入CLOSE-WAIT,却又没有接受到最后一次握手信息....build() ClosableHttpClient默认会创建一个大小为5的连接池(针对RPC调用不频繁的情况),端到端的链接可以复用,配置evict相关的两个方法,一方面用于处理类似CLOSE_WAIT...HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); CloseableHttpClient

1.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

浅谈CLOSE_WAIT

所谓 CLOSE_WAIT,借用某位大牛的话来说应该倒过来叫做 WAIT_CLOSE,也就是说「等待关闭」,如果你还不理解其含义,可以看看 TCP 关闭连接时的图例: TCP Close 不要被图中的...通常,CLOSE_WAIT 状态在服务器停留时间很短,如果你发现大量的 CLOSE_WAIT 状态,那么就意味着被动关闭的一方没有及时发出 FIN 包,一般有如下几种可能: 程序问题:如果代码层面忘记了...close 相应的 socket 连接,那么自然不会发出 FIN 包,从而导致 CLOSE_WAIT 累积;或者代码不严谨,出现死循环之类的问题,导致即便后面写了 close 也永远执行不到。...那么为什么我们总听说 CLOSE_WAIT 状态过多的故障,但是却相对少听说 FIN_WAIT2 状态过多的故障呢?...坏消息是 CLOSE_WAIT 没有类似的设置,如果不重启进程,那么 CLOSE_WAIT 状态很可能会永远持续下去;好消息是如果 socket 开启了 keepalive 机制,那么可以通过相应的设置来清理无效连接

3.8K21
领券