【问题标题】:Netty Worker Executor pool size and number of Netty I/O workersNetty Worker Executor 池大小和 Netty I/O 工作者数量
【发布时间】:2013-08-09 12:33:47
【问题描述】:

我正在为 Netty Worker Executor 使用大小为 8 的固定线程池。我试图一次又一次地向服务器发送相同的 curl 请求。我发现我的 curl 请求在大约 7 或 8 次之后一直挂起。我尝试将 Worker Executor 池大小增加到大约 16,并且我能够比以前执行更多的 curl 请求,但在大约 15 到 18 次后仍然挂起。这些是我的问题:

  1. 它们是 Netty 内部 Worker Executor 线程池大小的最小限制吗?
  2. Netty I/O Worker 的数量是否与 worker Executor 线程池大小相同?
  3. 如果不是,这两种尺寸有什么关系?

谢谢, 苏达

【问题讨论】:

  • 听起来您的线程正在挂起并且没有终止,并且您的传入请求在等待线程可用时被阻塞。

标签: netty


【解决方案1】:

您应该使用 Executors.newCachedThreadPool() 并使用 *ChannelFactory 实例中的 int 限制工作人员的数量

【讨论】:

  • 是的,我会尝试的。但是你能解释一下为什么不应该使用 FixedThreadPool() 吗?我们正在尝试使用 Netty 改造 Voldemort 服务器的 NIO 堆栈。当前设计使用固定数量的 nio 选择器。所以我们想比较这两种模型。
  • 因为在 ChannelFactory 关闭之前,Netty 不会释放线程。
猜你喜欢
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-19
相关资源
最近更新 更多