WARN io.netty.bootstrap.ServerBootstrap - Unknown channel option ''TCP_NODELAY
先看一段代码
public void start() {
ServerBootstrap serverBootstrap = new ServerBootstrap();
EventLoopGroup bossGroup = new NioEventLoopGroup();
EventLoopGroup workGroup = new NioEventLoopGroup();
try {
serverBootstrap.group(workGroup, workGroup)
.option(ChannelOption.TCP_NODELAY, true)
.channel(NioServerSocketChannel.class)
.handler(new LoggingHandler(LogLevel.INFO))
.childHandler(new NFTInitHandler());
serverBootstrap.bind(port).sync();
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
bossGroup.shutdownGracefully();
workGroup.shutdownGracefully();
}
}
看上去好像没有任何问题,但是确实会导致这个警告,原因在于serverBootstrap.option(ChannelOption.TCP_NODELAY, true)
,在这一节代码中option主要是设置的ServerChannel的一些选项,而childOption主要是设置的ServerChannel的子Channel的选项。
所以参数ChannelOption.TCP_NODELAY ,是用来设置childOption的,这里进行添加没有任何作用。
option主要是针对boss线程组,child主要是针对worker线程组
正确来源:
https://issues.apache.org/jira/browse/OAK-6901 https://netty.io/4.0/api/io/netty/channel/ChannelConfig.html