码头 9.0.3 中的 Close_wait 太多

Posted

技术标签:

【中文标题】码头 9.0.3 中的 Close_wait 太多【英文标题】:Too many Close_wait in jetty 9.0.3 【发布时间】:2014-05-14 01:11:27 【问题描述】:

我们在 jetty 9.0.3 服务器上部署了一个应用程序 REST 网关。对于部署在 jetty 中的服务的身份验证和授权,由 apache commons-httpclient3.1 负责。 当有大量并发线程访问 Rest 网关时,大量 CLOSE_WAIT 会堆积在 REST 网关机器中。 通过调用 apache commons 的 releaseConnections 方法正确关闭为向 enabler(END POINT)发送请求而打开的 Http 连接。 请让我知道如何处理这些 CLOSE_WAIT 或任何线索导致连接以 CLOSE_WAIT 结束。

【问题讨论】:

【参考方案1】:

当 Apache commons http Client 3.1 提供 closeIdleConnections(0) 时,close_wait 连接消失。但是现在建立了太多的 TIME_WAIT 并且后端我收到了诸如“地址已在使用”之类的错误:(

在使用 closeIdleConnections(0) 后,最终没有看到 CLOSE_WAIT 连接。希望这个解决方案可以帮助其他人:)

【讨论】:

【参考方案2】:

CLOSE_WAIT 表示 TCP 正在等待本地应用程序关闭其端的连接,该端已经被对端关闭。

所以你没有关闭它们。

【讨论】:

是的,明白了,但是检查了代码,无论我们在哪里打开连接,我们都会关闭。让我知道如何检查代码中的确切位置或码头级别的连接没有关闭。 这是哪个方向,谁关闭了发出请求的应用程序或为请求提供服务的服务器? @PaulTaylor 对等端已关闭连接,而本地应用程序尚未关闭。它没有正确检测到连接上的流结束,或者没有正确响应,或者卡在做其他事情。

以上是关于码头 9.0.3 中的 Close_wait 太多的主要内容,如果未能解决你的问题,请参考以下文章

linux如何关闭CLOSE_WAIT状态的端口?急

HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接(转)

Too many open files (CLOSE_WAIT过多)的解决方案:修改打开文件数的上限值调整TCP/IP的参数

码头 websocket 中的 ProtocolException 是啥意思?

如何使用 ConstraintMapping 排除码头中的特定路径?

码头工人群或牧场牛中的芹菜工人