摘要: Netty 如何高效接收网络数据?一文聊透 ByteBuffer 动态自适应扩缩容机制 本系列Netty源码解析文章基于 4.1.56.Final版本,公众号:bin的技术小屋,大家如果看到图片显示不了的话,可以查看公众号原文 前文回顾 在前边的系列文章中,我们从内核如何收发网络数据开始以一个C10K的问题作为主线详细从内核角度阐述了网络IO模型的演变,最终在此基础上引出了Netty的 阅读全文
posted @ 2022-07-05 20:26 bin的技术小屋 阅读(987) 评论(1) 推荐(2) 编辑
摘要: 抓到 Netty 一个 Bug,顺带来透彻地聊一下 Netty 是如何高效接收网络连接的 本文介绍了NioServerSocketChannel处理客户端连接事件的整个过程。接收连接的整个处理框架。影响Netty接收连接吞吐的Bug产生的原因,以及修复的方案。创建并初始化客户端NioSocketChannel。初始化NioSocketChannel中的pipeline。客户端NioSocketChannel向Sub Reactor注册的过程 阅读全文
posted @ 2022-07-05 14:10 bin的技术小屋 阅读(987) 评论(3) 推荐(4) 编辑
摘要: 一文聊透 Netty 核心引擎 Reactor 的运转架构 本文花了大量的篇幅介绍了Reactor整体的运行框架,并深入介绍了Reactor核心的工作模块的具体实现逻辑。通过本文的介绍我们知道了Reactor如何轮询注册在其上的所有Channel上感兴趣的IO事件,以及Reactor如何去处理IO就绪的事件,如何执行Netty框架中提交的异步任务和定时任务。最后介绍了Netty如何巧妙的绕过JDK NIO Epoll空轮询的BUG,达到解决问题的目的。 阅读全文
posted @ 2022-07-04 20:03 bin的技术小屋 阅读(796) 评论(5) 推荐(2) 编辑
摘要: 详细图解 Netty Reactor 启动全流程 | 万字长文 | 多图预警 本文我们通过图解源码的方式完整地介绍了整个Netty服务端启动流程,并介绍了在启动过程中涉及到的ServerBootstrap相关的属性以及配置方式。NioServerSocketChannel的创建初始化过程以及类的继承结构。其中重点介绍了NioServerSocketChannel向Reactor的注册过程以及Reactor线程的启动时机和pipeline的初始化时机。最后介绍了NioServerSocketChannel绑定端口地址的整个流程。 阅读全文
posted @ 2022-07-04 12:59 bin的技术小屋 阅读(1167) 评论(0) 推荐(4) 编辑
摘要: 聊聊 Netty 那些事儿之 Reactor 在 Netty 中的实现(创建篇) 本文介绍了Netty对各种IO模型的支持以及如何轻松切换各种IO模型。还花了大量的篇幅介绍Netty服务端的核心引擎主从Reactor线程组的创建过程。在这个过程中,我们还提到了Netty对各种细节进行的优化,展现了Netty对性能极致的追求。 阅读全文
posted @ 2022-07-03 21:10 bin的技术小屋 阅读(765) 评论(0) 推荐(1) 编辑
摘要: 聊聊Netty那些事儿之从内核角度看IO模型 从内核角度介绍了经常容易混淆的阻塞与非阻塞,同步与异步的概念。以这个作为铺垫,我们通过一个C10K的问题,引出了五种IO模型,随后在IO多路复用中以技术演进的形式介绍了select,poll,epoll的原理和它们综合的对比。最后我们介绍了两种IO线程模型以及netty中的Reactor模型。 阅读全文
posted @ 2022-07-03 14:40 bin的技术小屋 阅读(1294) 评论(1) 推荐(1) 编辑