【问题标题】:Http request Unresponsive : Apache TomcatHttp请求无响应:Apache Tomcat
【发布时间】:2020-02-01 22:36:07
【问题描述】:

我们已经在 Apache Tomcat 服务器上部署了我们的应用程序。

很少有用户在调用其中一个 API 端点时遇到问题,他们没有从服务器得到任何响应并且请求没有响应。

此问题是间歇性的。

我假设 Tomcat 线程池中的所有线程在那段时间都很忙,因此请求没有得到处理。

我阅读了关于 Tomcat maxConnection 和 accept-count 参数的信息。

我需要澄清一下,当处理即将到来的 http 请求的所有线程都忙并且同时保存未处理的 http 请求的队列已满时,Apache Tomcat 服务器会拒绝 http 请求?

【问题讨论】:

    标签: java apache http tomcat


    【解决方案1】:

    如果请求队列中有acceptCount 请求等待,则后续请求将被拒绝。 From the apache tomcat documentation:

    acceptCount:当所有连接请求的最大队列长度 可能的请求处理线程正在使用中。收到的任何请求 当队列已满时将被拒绝。默认值为 100。

    根据您的问题,您说用户没有从服务器得到响应,这表明请求没有立即被拒绝,而是挂起。如果您的应用程序连接到数据库,那么您可能想要检查数据源的线程池大小和性能,如果您通过网络连接到 3rd 方服务,那么瓶颈可能就在那里,或者确实是 IO 绑定的。如果 tomcat 拒绝连接,您会立即响应。

    【讨论】:

    • 从未发出的 Http 请求根本没有到达我们的 API 端点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 2017-12-18
    • 2018-01-12
    相关资源
    最近更新 更多