在netty的addLast中,EventExecutorGroup是正确的

时间:2015-09-16 09:45:10

标签: java netty

使用Netty,我正在增强一个通过VLI读取XML的TcpIp服务器。服务器使用VLI来确定数据包的边界。然后它按以下方式将数据包转换为xml doc。

pipeline.addLast("VLI codec", new CombinedChannelDuplexHandler<>(new LengthFieldBasedFrameDecoder(8192, 0, 2, 0, 2), new LengthFieldPrepender(2, false)));
pipeline.addLast("XML codec", byteToDocumentCodec);

然后进一步处理处理程序。

这项运作良好但不够好。使用单个线程,请求必须等待彼此处理。显然,必须在第二个 pipeline.addLast 中引入 EventLoopExecutor 参数。

问题是哪个是合适的。我正在考虑

pipeline.addLast(new LocalEventLoopGroup(), "XML codec", byteToDocumentCodec);

或者像

这样的东西
pipeline.addLast(new DefaultEventExecutorGroup(8), "XML codec", byteToDocumentCodec);

1 个答案:

答案 0 :(得分:1)

如果您不想在I / O线程中执行此操作,则DefaultEventExecutorGroup是正确的。这就是说你想为不同的ChannelPipelines共享相同的实例。