《Netty》从零开始学netty源码(三十六)之ChannelConfig

ChannelConfig

在前面创建NioServerSocketChannel的 构造函数中,最后一步创建了channel属性的配置类NioServerSocketChannelConfig,本文详细分析下该类,先看下其类结构图。

类结构图

《Netty》从零开始学netty源码(三十六)之ChannelConfig_第1张图片

服务端使用的NioServerSocketChannelConfig,客户端使用的NioSocketChannelConfig,接下来以NioServerSocketChannelConfig为例着重分下config类的用途。

类属性

《Netty》从零开始学netty源码(三十六)之ChannelConfig_第2张图片

config类的属性一般都可以通过启动类ServerBootStrap类的option方法来设置,当然也可以调用setXXX方法自定义设置。他们的默认值如下:
《Netty》从零开始学netty源码(三十六)之ChannelConfig_第3张图片

writeBufferWaterMark的默认值如下:

《Netty》从零开始学netty源码(三十六)之ChannelConfig_第4张图片

构造函数

NioServerSocketChannelConfig的构造函数源码过程如下,在整个过程中只有rcvBufAllocator的值是新创建的,其他属性值都有默认值。

《Netty》从零开始学netty源码(三十六)之ChannelConfig_第5张图片

至此ChannelConfig的分析到此结束,ChannelConfig只是简单的提供属性,在使用的话时候通常使用getXXX方法获取,重要的是它的赋值,其中allocatorrcvBufAllocatormsgSizeEstimator这三个属性比较重要,后文再详细分析。

你可能感兴趣的:(Netty,netty)