Joh*_* MD 8 java jersey httpclient apache-commons
我使用Jersey 1.4,ApacheHttpClient和Apache MultiThreadedHttpConnectionManager类来管理连接.为此HttpConnectionManager,我将staleCheckingEnabled设置为true,将maxConnectionsPerHost设置为1000,将maxTotalConnections设置为1000.其他所有内容都是默认值.我们在Tomcat中运行并使用Jersey客户端连接到多个外部主机.
我注意到,经过一段时间后,我将开始看到处于CLOSE_WAIT状态的套接字与Tomcat进程相关联.使用tcpdump进行的一些监视显示外部主机在一段时间后似乎正在关闭连接,但它并没有在我们结束时关闭.通常在套接字读取队列中有一些数据,通常是24个字节.连接使用https,数据似乎是加密的,所以我不确定它是什么.
我已经检查过以确保创建的ClientRequest对象已关闭.CLOSE_WAIT中的套接字似乎确实被回收了,至少在这个时候我们没有耗尽任何资源.我不确定外部服务器上发生了什么.
我的问题是,这是正常的,我应该担心吗?
谢谢,
约翰
小智 1
这可能是防火墙或远程服务器等设备导致 TCP 会话超时。您可以使用 Wireshark 分析 HTTPS 的数据包捕获,如其 SSL 页面上所述:
staleCheckingEnabled 标志仅在您实际使用连接时发出检查,因此您在不需要网络资源(TCP 会话)时不会使用它们。
| 归档时间: |
|
| 查看次数: |
1982 次 |
| 最近记录: |