码迷,mamicode.com
首页 > Web开发 > 详细

netty学习心得1

时间:2018-10-08 21:36:15      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:child   group   work   cli   length   buffer   get   ldo   两种   

也不是系统学习,工作需求,一点点抠的,需要自己笼统学习下。

首先功能实现:

 

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

netty学习心得1

标签:child   group   work   cli   length   buffer   get   ldo   两种   

原文地址:https://www.cnblogs.com/heroinss/p/9757013.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!