
Netty
旧城灯火
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
读书笔记:《Netty进阶之路》——netty缓冲区、缓冲区释放、内存池
第3章提出问题:“缓冲区未正确释放导致Netty内存池泄露”,引出Netty内存管理方式介绍;第4张提出问题:“ByteBuf使用不当导致报错、程序无法正常运行”,引出ByteBuf的使用方式和原理。我颠倒一下顺序,先回顾ByteBuf的正确使用和实现原理,后回顾Netty内存池技术。 1 Netty缓冲区——ByteBuf Netty的ByteBuf是一个抽象类,是Netty管辖的内存,...原创 2019-06-13 00:00:34 · 5316 阅读 · 0 评论 -
读书笔记:《Netty进阶之路》——Netty服务端、Netty客户端、优雅关闭
1 Netty服务端 第一章提出“Netty作为服务端启动时偶尔会有服务端意外退出的现象”的问题。原因:Netty作为服务端启动,为了防止服务端意外退出,应该防止EventLoopGroup意外关闭,因为EventLoopGroup是非守护线程,只要它没有退出,则JVM不会关闭。 若启动线程是main线程,且优雅关闭作业也在main线程,则启动完成后需要阻塞线程,否则finally块会关闭...原创 2019-06-10 23:44:13 · 3129 阅读 · 0 评论 -
读书笔记:《Netty进阶之路》——消息发送机制、消息接收时的内存申请机制
《Netty进阶之路》第5章、第6章分别提出两个问题:消息发送时没有限流造成消息积压,内存飙升;消息接收时没有注意正确的内存申请,导致内存和CPU占用不稳定。 1 消息发送机制 Netty的消息发送前判断当前线程是否Netty NIOEventLoopLoop线程,如果是则直接执行写,否则封装成WriteTask添加到NIOEventLoopLoop的任务队列中执行写,这样做的好处是把IO操作...原创 2019-06-23 23:53:50 · 418 阅读 · 0 评论 -
读书笔记:《Netty进阶之路》——ChannelHandler并发安全、NioEventLoop防阻塞挂死
《Netty进阶之路》第7章、第8章分别提出ChannelHandler并发安全问题,NioEventLoop线程阻塞导致消息接收和处理缓慢。ChannelHandler的并发安全问题很好分析,NioEventLoop线程阻塞则需要一些技巧。 1 ChannelHandler并发安全 默认每个Channel中有各自的ChannelHandler实例,因此如果所有业务在NioEvent...原创 2019-06-24 22:47:23 · 1255 阅读 · 0 评论