netty学习心得1
生活随笔
收集整理的這篇文章主要介紹了
netty学习心得1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
也不是系統學習,工作需求,一點點摳的,需要自己籠統學習下。
首先功能實現:
serverBootstrap.group(boss, work).channel(NioServerSocketChannel.class)
.option(ChannelOption.SO_BACKLOG, nettyConfig.getBacklog())
.option(ChannelOption.SO_KEEPALIVE, true)
.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
// .option(ChannelOption.RCVBUF_ALLOCATOR, AdaptiveRecvByteBufAllocator.DEFAULT)
.childOption(ChannelOption.SO_KEEPALIVE, nettyConfig.isKeepalive())
.childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
這幾個option里對于ALLOCATOR還比較模糊,看了半天資料也沒太明白,周末有時間還需要細看
今晚明白了;
NioServerSocketChannel是用于服務端的,
NioSocketChannel用于client的,
對于ALLOCATOR的四種pool需要更加了解,對于高并發優化,主要是依靠這個參數以及RCVBUF_ALLOCATOR;
另在read方法中讀完,需要把buffer給clear不然高并發下會發生內存泄漏問題。 粘包問題:基于包長的分包:
LengthFieldBasedFrameDecoder 也可基于關鍵字分包:
DelimiterBasedFrameDecoder
還有其他分包,再寫,目前工作中遇到的是這兩種,用netty時,就要做好分包,因為高并發下,粘包是必然發生的事情,雖然頻率待定,但是必定發生
https://blog.csdn.net/tjf1314520/article/details/60773991
這是一個自定義decode的時候的分配buffer大小問題
主要是調用ByteBuf heapBuffer = ctx.alloc().heapBuffer(); 的時候給它分配大小。ByteBuf heapBuffer = ctx.alloc().heapBuffer(readableBytes);
https://blog.csdn.net/a975261294/article/details/80535343
總結
以上是生活随笔為你收集整理的netty学习心得1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TOYS POJ 2318 计算几何 叉
- 下一篇: CCF 最大的矩形