WSO2 ESB 5.0.0 线程和 类 加载问题
WSO2 ESB 5.0.0 threads and classes loaded issue
我在 WSO2 ESB 5.0.0 中有一个简单的直通代理到 WSO2 DSS。当我使用 esb 代理时,实时踏板 类 加载增加,直到 WSO2 ESB 崩溃。当 esb 崩溃时,有 284 个线程和 14k 类 负载。如果我直接使用 DSS,dss 不会崩溃,最大线程数为 104 和 9k 类。
如何强制 esb 释放该资源,或改进 esb 处理 esb 中的 http 连接的方式?看起来僵尸连接永远不会释放线程。
对解决问题有帮助吗?
看起来类加载和线程数没有问题。我刚刚测试完新安装的 WSO2ESB 服务器。
- WSOESB 版本 5.0.0
- java8
- Windows 8
- Esb 服务器也安装了 DSS 功能。
- DSS服务通过http1.1协议调用。
- DSS 服务有很长的 运行 查询(超过 10 秒)
- 对 ESB 服务的同时请求总数超过 150
加载的总数 类 超过 15000 个总线程 运行 超过 550 个。即使在这种高负载下也没有任何像你提到的发行者。
我真正推荐的是检查你如何向 esb 服务发出 http 请求。它对 headers 有点敏感,比如 Content-Type,编码。使用 apache httpclient (4.5)
找出如何在 esb 上正确调用 soap 服务花了很长时间
最终可能会发现问题所在。问题出在 DSS 和 ESB 服务器之间。根据源代码,当 esb 向 dss 服务器发送请求并且请求被 DSS 服务器读取但在 DSS 服务器将响应写入 ESB 服务器之前关闭与 DSS 服务器的连接时,会发生这种错误。然后 esb 服务器报告有关您提到的问题的消息
源处理器
...
} 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 秒。
我在 WSO2 ESB 5.0.0 中有一个简单的直通代理到 WSO2 DSS。当我使用 esb 代理时,实时踏板 类 加载增加,直到 WSO2 ESB 崩溃。当 esb 崩溃时,有 284 个线程和 14k 类 负载。如果我直接使用 DSS,dss 不会崩溃,最大线程数为 104 和 9k 类。
如何强制 esb 释放该资源,或改进 esb 处理 esb 中的 http 连接的方式?看起来僵尸连接永远不会释放线程。
对解决问题有帮助吗?
看起来类加载和线程数没有问题。我刚刚测试完新安装的 WSO2ESB 服务器。
- WSOESB 版本 5.0.0
- java8
- Windows 8
- Esb 服务器也安装了 DSS 功能。
- DSS服务通过http1.1协议调用。
- DSS 服务有很长的 运行 查询(超过 10 秒)
- 对 ESB 服务的同时请求总数超过 150
加载的总数 类 超过 15000 个总线程 运行 超过 550 个。即使在这种高负载下也没有任何像你提到的发行者。
我真正推荐的是检查你如何向 esb 服务发出 http 请求。它对 headers 有点敏感,比如 Content-Type,编码。使用 apache httpclient (4.5)
找出如何在 esb 上正确调用 soap 服务花了很长时间最终可能会发现问题所在。问题出在 DSS 和 ESB 服务器之间。根据源代码,当 esb 向 dss 服务器发送请求并且请求被 DSS 服务器读取但在 DSS 服务器将响应写入 ESB 服务器之前关闭与 DSS 服务器的连接时,会发生这种错误。然后 esb 服务器报告有关您提到的问题的消息
源处理器
...
} 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 秒。