【问题标题】:Sporadic 502 errors from java web application running on Grizzly在 Grizzly 上运行的 Java Web 应用程序出现零星的 502 错误
【发布时间】:2019-01-16 12:07:09
【问题描述】:

我们的 Web 应用程序出现零星的 502 错误;我们可以通过多次重复相同的调用来重现这一点:在第 8-12 次它挂起约 30 秒,然后返回“502 代理错误”html。

我们通过登录一台受影响的机器并使用 curl 直接在 localhost:8080 上调用应用程序来排除这是 AWS 或 Apache 的问题;经过一些调用,我们得到:

* Recv failure: Connection reset by peer
* stopped the pause stream!
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer

查看应用程序日志,似乎有问题的调用从未到达应用程序(它们从未被记录)。

Web 应用程序基于 Java,使用 Grizzly 容器 (org.glassfish.jersey.containers:jersey-container-grizzly2-http:2.25.1)。

编辑: 30 秒挂起呼叫的持续时间似乎是 NetworkListener (https://javaee.github.io/grizzly/httpserverframework.html) 的 keepAlive 属性。

编辑 2: 只能通过使用 AsyncResponse 重复调用 API 来重现该问题;调用其他端点不会触发此行为。

【问题讨论】:

    标签: java grizzly


    【解决方案1】:

    可能是您的应用程序的连接或线程中的并发性问题,也许您正在打开到后端的许多连接直到达到限制,或者您的连接没有关闭线程。

    【讨论】:

      【解决方案2】:

      已解决:升级到 Jersey 2.26 解决了这个问题,虽然我不明白为什么会这样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-02
        • 2014-10-25
        • 2016-05-10
        • 1970-01-01
        • 2020-05-08
        • 2021-12-13
        相关资源
        最近更新 更多