首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Netty业务开发常见Bug解析

Netty业务开发常见Bug解析

作者头像
JavaEdge
发布2021-02-23 15:16:28
发布2021-02-23 15:16:28
3580
举报
文章被收录于专栏:JavaEdgeJavaEdge

不显式初始化initialBytesToStrip

  • LengthFieldBasedFrameDecoder#initialBytesToStrip

ChannelHandler顺序错误

  • 解码编码顺序一定要注意

ChannelHandler 共享问题

  • 不该共享的共享了,并发时就有数据问题 这个很容易理解,犯错了也会很严重,必须避免。
  • 该共享的不共享,每个 pipeline 自己又单独添加了,就等于重复存了该 handler 浪费内存

分配ByteBuf方式错误

分配器直接用ByteBufAllocator.DEFAULT等,而不是采用ChannelHandlerContext.alloc()

未考虑ByteBuf的释放

对于堆外内存或内存池,我们必须手动去释放它,因为 GC 不负责处理。如果忘记释放,就会完蛋。 所以一般继承

完成内存释放。

write(msg)就一定能写数据?

  • ChannelHandlerContext.channel().writeAndFlush(msg)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/12/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 不显式初始化initialBytesToStrip
  • ChannelHandler顺序错误
  • ChannelHandler 共享问题
  • 分配ByteBuf方式错误
  • 未考虑ByteBuf的释放
  • write(msg)就一定能写数据?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档