Netty option和childOption参数

通用参数

1、CONNECT_TIMEOUT_MILLIS

Netty参数,连接超时毫秒数,默认值30000ms,即30s.

2、MAX_MESSAGES_PER_READ

Netty参数,一次Loop读取的最大消息数,对于ServerChannel或者NioByteChannel,默认值为16,其他Channel默认值为1。

3、WRITE_SPIN_COUNT

Netty参数,一个Loop写操作执行的最大次数,默认值为16。也就是说,对于大数据量的写操作至多进行16次,如果16次仍没有全部写完数据,此时会提交一个新的写任务给EventLoop,任务将在下次调度继续执行。这样,其他的写请求才能被响应不会因为单个大数据量写请求而耽误。

4、ALLOCATOR

netty参数,ByteBuf的分配器。

5、RCVBUF_ALLOCATOR

netty参数,用于Channel分配接受Buffer的分配器,默认是AdaptiveRecvByteBufAllocator.DEFAULT,是一个自适应的接受缓冲区分配器。可选值FixedRecvByteBufAllocator。

6、AUTO_READ

netty参数,默认为true。该值为true,每次读操作完毕后会自动调用channel.read(),从而有数据到达便能读取,否则,需要用户手动调用channel.read()。

7、WRITE_BUFFER_HIGH_WATER_MARK

netty参数,写高水位标记,默认为64KB,如果 netty的写缓冲区的字节超过该值 ,channel的isWritable()返回false.

8、WRITE_BUFFER_LOW_WATER_MARK

netty参数,写低水位标记,默认为32KB。当Netty的写缓冲区的字节超过高水位之后若下降到低水位,则Channel的isWritable()返回true。推荐做法是:每次调用channel.write(msg)方法首先调用channel.isWritable()判断是否可写。

9、MESSAGE_SIZE_ESTIMATOR

Netty参数,消息大小估算器。

10、SINGLE_EVENTEXECUTOR_PER_GROUP

netty参数,单线程执行ChannelPipeline中的事件,默认值为true。这样整个pipeline由一个线程执行,这样不需要进行线程切换以及线程同步,是netty4的推荐做法。

SocketChannel参数

1、SO_RCVBUF

socket参数,tcp数据接收缓冲区大小。该缓冲区即tcp接收滑动窗口,

2、SO_SNDBUF

socket参数,tcp数据发送缓冲区大小。

3、TCP_NODELAY

tcp参数,立即发送数据,默认值为true。(netty默认为true,而操作系统默认为false),该值 设置Nagle算法的启用,该算法将小的报文连接成更大的报文来最小化所发磅的报文数量。

4、SO_KEEPALIVE

socket参数,默认值为false,可以将此功能视为TCP的心跳机制,默认的心跳间隔是2小时。

5、SO_REUSEADDR

socket参数,地址利用,默认值 false。有四种情况可以使用:(1)当有一个相同本地地址和端口的socket1处于TIME_WAIT状态时,而你希望启动程序的socket2要占用该地址和端口(2)有多卡网卡或IP Alias技术的机器在同一端口启动多个进程,但每个进程绑定的本地IP地址不能相同(3)单进程绑定相同的端口到多个socket上,但每个socket绑定的地址不同。(4)完全相同的地址和端口的重复绑定。但这只用于UDP的多播。

6、SO_LINGER

socket参数,关闭socket的延迟时间,默认值为-1,表示禁用该功能。-1表示socket.close()方法立即返回,但OS底层会将发送缓冲区全部发送到对端。0表示socket.close()方法立即返回,放弃发送缓冲区的数据直接向对端发送RST包,对端收到复位错误。非0表示调用socket.close()方法的线程被阻塞直到延迟时间到或发送缓冲区中的数据发送完毕,若超时,则对端会收到复位错误。

7、IP_TOS

ip参数,设置IP头部的type-of-service字段,用于描述ip包的优先级和qos选项。

8、ALLOW_HALF_CLOSURE

netty参数,一个连接的远端关闭时本地端是否关闭,默认值为false,表示连接自动关闭。为true时,触发ChannelInboundHandler的userEventTriggered()方法,事件为ChannelInputShutdownEvent.

ServerSockerChannel参数

1、SO_RCVBUF

如上。

2、SO_REUSEADDR

如上。

3、SO_BACKLOG

socket参数,服务端接受连接的队列长度,如果队列已满,客户端连接将被拒绝。默认值 windows为200,其它为128。

https://www.cnblogs.com/xuxiuxiu/p/7826539.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值