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