如何使用 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);
我升级了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);