netty学习心得1
生活随笔
收集整理的這篇文章主要介紹了
netty学习心得1
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
也不是系統(tǒng)學(xué)習(xí),工作需求,一點(diǎn)點(diǎn)摳的,需要自己籠統(tǒng)學(xué)習(xí)下。
首先功能實(shí)現(xiàn):
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)
這幾個(gè)option里對于ALLOCATOR還比較模糊,看了半天資料也沒太明白,周末有時(shí)間還需要細(xì)看
今晚明白了;
NioServerSocketChannel是用于服務(wù)端的,
NioSocketChannel用于client的,
對于ALLOCATOR的四種pool需要更加了解,對于高并發(fā)優(yōu)化,主要是依靠這個(gè)參數(shù)以及RCVBUF_ALLOCATOR;
另在read方法中讀完,需要把buffer給clear不然高并發(fā)下會(huì)發(fā)生內(nèi)存泄漏問題。 粘包問題:基于包長的分包:
LengthFieldBasedFrameDecoder 也可基于關(guān)鍵字分包:
DelimiterBasedFrameDecoder
還有其他分包,再寫,目前工作中遇到的是這兩種,用netty時(shí),就要做好分包,因?yàn)楦卟l(fā)下,粘包是必然發(fā)生的事情,雖然頻率待定,但是必定發(fā)生
https://blog.csdn.net/tjf1314520/article/details/60773991
這是一個(gè)自定義decode的時(shí)候的分配buffer大小問題
主要是調(diào)用ByteBuf heapBuffer = ctx.alloc().heapBuffer(); 的時(shí)候給它分配大小。ByteBuf heapBuffer = ctx.alloc().heapBuffer(readableBytes);
https://blog.csdn.net/a975261294/article/details/80535343
總結(jié)
以上是生活随笔為你收集整理的netty学习心得1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TOYS POJ 2318 计算几何 叉
- 下一篇: CCF 最大的矩形