用于连接超时和打开连接数的 Netty 通道配置

Cae*_*sar 1 java connection-timeout netty

我正在尝试使用 netty 实现一个 HTTP 服务器,我想知道一些我无法从 netty api 理解的东西。我阅读了许多其他与 netty 相关的 stackoverflow 问题,但我仍然无法 udnertand。

1.如果我想在一段时间内打开来自客户端的连接,我应该使用 CONNECT_TIMEOUT_MILLIS 还是添加读取超时处理程序并在其中添加超时。基本上我想了解这两者之间的区别。& CONNECT_TIMEOUT_MILLIS 的默认值是多少。

  1. SO_BACKLOG 的默认值是多少,我在其中之一中读到它等于 io.netty.netUtils 中的 SOMAXCONN。但是它的值是多少。另外,我想确定 so_backlog 限制了工作线程 ri8? 的数量。我的意思是,如果我将其设置为 1000,则表示 netty 一次不允许打开超过 1000 个连接。

  2. 有人可以解释 netty 如何在内部从通道写入和读取方面响应 HTTP 请求吗?

提前致谢!!!

tru*_*tin 6

CONNECT_TIMEOUT_MILLIS是连接尝试的超时时间。一旦建立连接,它就不起作用。你感兴趣的是ReadTimeoutHandler

默认SO_BACKLOG值为NetUtils.SOMAXCONN. 它不限制工作线程的数量。有关更多信息SO_BACKLOG,请参阅此问题。要限制工作线程的数量,您必须在构造NioEventLoop. SO_BACKLOG也与最大并发连接数无关。

回复:HTTP 如何在 Netty 中工作 - 这个问题太广泛,无法给出简单的答案。请使用您的调试器进入 Netty 内部以了解我们的工作原理。