gpt4 book ai didi

java - 我应该如何配置 Netty 来处理高请求量?

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:06 24 4
gpt4 key购买 nike

在我们的应用程序中,我们需要构建一个 HTTP 服务器,在该服务器启动时,各种远程服务器向其打开大约 1,600 个持久 HTTP 连接,并且快速连续地向每个连接发送数千个 HTTP POST 请求流大约 30 秒 - 我们只需几毫秒即可响应每一个。 30 秒后连接关闭,另一个连接打开。

我们选择 Netty 是因为大多数人认为它非常适合构建高效的 HTTP 服务器。

在实现我们的 HTTP 服务器时,我们遵循了 Snoop Netty HTTP 服务器示例。

不幸的是,我们遇到的问题可能是由 Netty 过载引起的,因此我们正在重新考虑它是否正确配置,特别是线程的处理方式。我们配置服务器如下:

ServerBootstrap bootstrap = new ServerBootstrap(
new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool()));

当我们收到请求时,我们会在调用 SimpleChannelUpstreamHandler 中的 messageReceived() 的同一个线程中处理它。

这种方法应该适用于我们的应用程序吗?

编辑:发生故障时盒子上的平均负载为 0.05,非常低。我已经为 Java 进程分配了 4GB,但它几乎没有使用任何空间。所以,基本上,盒子完全没有负载。

最佳答案

您是否通过在 ServerBootstrap 中设置“child.nodelay”来禁用 Nagle?

(参见 http://static.netty.io/3.5/api/org/jboss/netty/bootstrap/ServerBootstrap.html)

关于java - 我应该如何配置 Netty 来处理高请求量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13979450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com