java - 高负载下 Netty 服务器中的请求花费更长的时间

标签 java netty

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

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

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

有人可以阐明如何调整 Netty 来处理此类负载吗?

湿婆神。

最佳答案

听起来您可能尚未将这 20% 的请求的处理放在管道中的 ExecutionHandler 后面。如果是这种情况,那么您的工作线程将陷入等待状态,无法处理新请求。尽管您可以确保那些可以立即处理的请求在 ExecutionHandler 之前得到处理。

org.jboss.netty.handler.execution.ExecutionHandler

关于java - 高负载下 Netty 服务器中的请求花费更长的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10225143/

相关文章:

java - 将 jlink 与自动模块一起使用

java - 如何实现基本的 2d 图形/在 java 中使用它们

java - Netty 和 JavaFX 出现 "Not on FX application thread"异常

java - SpringBoot 2使用HikariCP无法连接MySQL

Java - 每次运行 for 循环时缩进该行

java - 查找 ArrayList 中点的邻居

netty - 哪个效率更高 : Netty's HashedWheelTimer or Quartz's scheduler?

java - netty4测试过程中出现"java.lang.NullPointerException"

java - 有没有办法从一个 Netty channel 读取数据的速度与写入另一个 channel 的速度一样快?

java - Netty Nio 中 promise 的异步更新