Netty 4:NioEventLoopGroup中的Channel-EventLoop映射

时间:2014-03-21 12:49:25

标签: java netty

我们有一个分布式应用程序,它使用Netty(4)作为我们的低级别通信内容。该系统中的进程执行多个任务。每个任务都包含一组输入和输出通道。频道永久分配给Netty中的单个EventLoop。 Channel到EventLoop的映射在(Nio)EventLoopGroup中以循环方式发生。我们希望能够更好地控制此映射,并将同一任务的所有通道分配给相同的EventLoop。此“Channel-EventLoop affinity”的目的是减少ChannelHandler中某些特定内存管理内容的锁争用。我们查看了Netty文档,但没有找到任何内容。在Netty 4中有一般的方法吗?

我发现的另一种可能性是覆盖实现循环通道映射的“MultithreadEventExecutorGroup”中的“EventExecutor next()”方法(至少我是这么认为)。这是一种强制执行不同映射的可行方法,还是我使用此黑客创建了不良副作用?

我很感激任何帮助!! 托比

1 个答案:

答案 0 :(得分:3)

目前不可能以“干净”的方式做到这一点。我们想在netty 5中改变它。 另请参阅https://github.com/netty/netty/issues/1230