服务器:
EventLoopGroup bossGroup = new NioEventLoopGroup(1);
EventLoopGroup workerGroup = new NioEventLoopGroup(8);
try {
ServerBootstrap b = new ServerBootstrap();
b.option(ChannelOption.SO_BACKLOG, 1024);
b.group(bossGroup, workerGroup)
.channel(NioServerSocketChannel.class)
客户:
Bootstrap b = new Bootstrap();
b.group(workerGroup)
.channel(NioSocketChannel.class)
...
clientChannel = b.connect(host, port);
服务器通道处理程序read
是一个程序包时,它会通过clientChannel
向另一台服务器发出请求,
cleintChannel.writeAndFlush(msg->newMsg());
但是,出乎我的意料:clientChannel处理程序read
日志打印其IO线程为ntLoopGroup-5-1
,而serverChannel处理程序read
日志打印其IO线程ntLoopGroup-5-2
。>
我希望通过使用netty共享的eventLoop,该程序可以具有较低的上下文切换率。
答案 0 :(得分:0)
您可以使用acceptedChannel.eventLoop()
作为传递到group(...)
的{{1}}中的组来执行此操作。这正是我们在HexDump示例中所做的: