Netty工作执行器池大小和Netty I/O工作器数量

3
我正在使用大小为8的固定线程池来作为Netty Worker Executor。我尝试向服务器发送相同的curl请求,但发现我的curl请求在连续7或8次后会挂起。我试图将Worker Executor池的大小增加到大约16个,然后我能够执行比以前更多的curl请求,但仍然会在15到18次后挂起。以下是我的问题:
  1. Netty内部是否存在Worker Executor线程池大小的最小限制?
  2. Netty I/O Workers的数量是否与Worker Executor线程池大小相同?
  3. 如果不是,这两个大小之间有什么关系?
谢谢, Sudha

听起来你的线程卡住了而没有终止,而且你的传入请求正在阻塞等待线程变得可用。 - Trevor Freeman
1个回答

1

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


好的,我会尝试这样做。但是你能解释一下为什么不应该使用FixedThreadPool()吗?我们正在尝试使用Netty重新设计Voldemort服务器的NIO堆栈。当前的设计使用固定数量的nio选择器。因此,我们想比较这两种模型。 - user2453716
1
因为Netty在ChannelFactory关闭之前不会释放线程。 - Norman Maurer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接