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

首先功能实现:

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

最新文章

  1. thinkPHP-空操作
  2. 可伸缩性最佳实践:来自eBay的经验
  3. input/select/textarea标签的readonly效果实现
  4. Ibatis学习总结1--ibatis简介和SQL Maps
  5. 比特币钱包应用breadwallet源码
  6. Oracle数据库SQL优化
  7. mysql 保留的关键字
  8. SetWindowLong
  9. SpringMVC轻松学习-SpringMVC介绍(一)
  10. JSP中使用Taglib
  11. mysql将查询结果导出
  12. python学习博客地址集合。。。
  13. bootstrap-fileinput多图片上传
  14. Linux Xshell连接Linux服务器时报错Socket error Event: 32 Error: 10053
  15. c/c++ 链栈
  16. C#红绿状态灯
  17. [Oacle][Partition]Partition操作与 Index, Global Index 的关系
  18. 使用nosql实现页面静态化的一个小案列
  19. nginx的使用教程
  20. jQuery中,子页面与父页面之间的调用方法

热门文章

  1. Mybatis_day3
  2. win10中搭建Linux子系统
  3. DeepCoder: A Deep Neural Network Based Video Compression
  4. 使用dd命令快速生成大文件或者小文件
  5. python编程入门笔记
  6. Java数据结构——顺序表
  7. SpringBoot2搭建基础架构——开源软件诞生4
  8. Ubuntu 16.04 安装CP210x,CH340驱动
  9. vue项目配置vuex
  10. SpringCloud Alibaba Nacos 服务注册