[main] 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

image.png

# Netty 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×