Netty 增加接收缓冲区大小


增加接收缓冲区

使用netty时发现每次channelRead触发时,对应的消息大小总是少于1024,查了下资料,可以通过两种如下方式设置

.option(ChannelOption.SO_RCVBUF, 1024*4)
.option(ChannelOption.RCVBUF_ALLOCATOR,new FixedRecvByteBufAllocator(4096))
//FixedRecvByteBufAllocator也可以换为AdaptiveRecvByteBufAllocator

第一种参数似乎不起作用,找到了这个issue,根据里面的说法,这个参数传到os层,由于不同os的差异,实际上这个参数未必会和设置的一样,最终缓冲区大小还是由os决定的。

我的测试环境是macOs,通过man getsockopt,看到SO_RCVBUF这个参数是动态变化的,会有一个自适应的过程。

在netty的测试程序,增加发送数据大小为10MB后,发现channelRead经过一定次数后,消息大小从最初的1024增加到了16384。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM