1

我们使用 Netty 框架构建了一个实时系统来处理我们的 HTTP 请求。20% 的服务调用本质上是长轮询,在大多数情况下,我们会在 55 秒后回复。

随着负载的增加,响应时间逐渐增加,在高负载条件下(20000 个长轮询连接和 10000 个短轮询连接建立),响应时间超过 5 秒。

我们确认请求在 netty 服务器级别延迟。所有其他因素(客户端、Nginx、服务器业务逻辑)都被验证为不存在问题。我们甚至尝试在完全移除业务逻辑的情况下运行测试。结果还是一样。

有人可以对如何调整 Netty 来处理此类负载有所了解。

湿婆。

4

1 回答 1

1

听起来您可能还没有将这 20% 的请求处理置于管道中的 ExecutionHandler 之后。如果是这种情况,那么您的工作线程会卡住等待并且无法处理新请求。尽管您可以确保在 ExecutionHandler 之前处理那些可以立即处理的请求。

org.jboss.netty.handler.execution.ExecutionHandler

于 2012-04-25T08:06:44.527 回答