Netty学习09- Netty接收数据过程剖析

学习第24节

Netty接收数据的技巧:

1 自适应数据大小的分配器(AdaptiveRecvByteBufAllocator):
发放东西时,拿的桶小了不够,大了浪费,所以会自己根据实际装的情况猜一猜下次情况,从而决定下次带多大的桶。
2 连续读(defaultMaxMessagesPerRead):
发放东西时,假设拿的桶装满了,这个时候,你会觉得可能还有东西发放,所以直接拿个新桶等着装,而不是回家,直到后面出现没有装上的情况或者装了很多次需要给别人一点机会等原因才停止,回家。

Netty接收数据的主线:
在这里插入图片描述
Netty读取数据本质:

sun.nio.ch.SocketChannelImpl#read(java.nio.ByteBuffer)
NioSocketChannel read() 是读数据, NioServerSocketChannel read() 是创建连接
pipeline.fireChannelReadComplete(); 一次读事件处理完成
pipeline.fireChannelRead(byteBuf); 一次读数据完成,一次读事件处理可能会包含多次读数据操作。
AdaptiveRecvByteBufAllocator 对 bytebuf 的猜测:放大果断,缩小谨慎(需要连续 2 次判断)

注:内容参考极客时间相关课程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值