我在WSO2 ESB5.0.0中有一个简单的直通代理到WSO2决策支持系统。当我使用esb代理时,加载的动态踏板类会增加,直到WSO2 ESB崩溃。当esb崩溃时,有284个线程和14k类负载。如果我直接使用DSS,dss不会崩溃,最大线程是104和9k类。
如何强制esb发布该资源,或改进esb如何处理esb中的http连接?看起来僵尸连接永远不会释放线程。
有什么帮助来解决这个问题吗?
发布于 2017-04-10 15:44:12
在类加载和线程计数方面没有这个问题。我刚刚完成了对新安装的WSO2ESB服务器的测试。
已加载类总数超过15000个,运行在550个以上的线程总数。即使在如此高的负荷下,也没有像你提到的任何发行人。
我实际上推荐的是检查如何向esb服务发出http请求。它对内容类型、编码之类的标题比较敏感。使用(4.5)了解如何在esb上正确调用soap服务花费了很长时间。
最终可能会发现问题。问题在于DSS和ESB服务器之间。根据源代码,当esb向dss服务器发送请求并由DSS服务器读取请求时,在DSS服务器向ESB服务器写入响应之前,就会关闭与DSS服务器的连接。然后,esb server报告有关您提到的问题的消息。
SourceHandler
...
} else if (state == ProtocolState.REQUEST_DONE) {
isFault = true;
log.warn("Connection closed by the client after request is read: " + conn);
}易于复制启动esb和dss服务器。开始发送大量请求到ESB、关闭DSS服务器上的直通代理(哪个代理请求到DSS服务),您将看到许多
WARN - SourceHandler Connection closed by the client after request is read: http-incoming-1073 Remote Address这可能是网络发布者,防火墙,以及WsoDSS服务器有套接字超时,这在默认情况下是180。
https://stackoverflow.com/questions/43259856
复制相似问题