如何使用 NettyServerCustomizer 配置子组?

How to configure child group using NettyServerCustomizer?

我升级了netty版本,发现TcpServer的bootstrap方法已经从我之前的版本中删除了。我不知道如何使用新的 netty 库转换我现有的代码。

factory.addServerCustomizers((NettyServerCustomizer) httpServer -> {
                    httpServer
                    .tcpConfiguration(tcpServer ->
                            tcpServer
                                    .bootstrap(serverBootstrap ->
                                            serverBootstrap
                                                    .group(parentGroup, childGroup)
                                                    .channel(NioServerSocketChannel.class)
                                    )
                    );

我可以 httpServer.runOn(parentGroup) 但不知道如何用它配置 childGroup。有什么想法吗?

您可以使用下面的代码作为替代:

LoopResources loop =
         new LoopResources() {
             @Override
             public EventLoopGroup onServer(boolean useNative) {
                 return childGroup;
             }

             @Override
             public EventLoopGroup onServerSelect(boolean useNative) {
                 return parentGroup;
             }
         };

httpServer.runOn(loop, false);

如果您想为 EventLoopGroup 使用一些特定的实现。

如果你的需求只是使用NIO那么你可以使用下面的代码:

LoopResources loop = LoopResources.create("my-loop", parentGroupNumThreads, childGroupNumThreads, true);

server.runOn(loop, false);