
netty4源码分析
文章平均质量分 89
深入剖析netty结合操作系统相关能力,实现高性能io原理
岁月人
极客精神,热衷源码探索,持续学习
跟随云原生脚步,探索深度学习方向
展开
-
netty4核心源码分析第八篇一核心篇服务端fireChannelRead责任链
文章目录pipeline.fireChannelRead原理图源码分析一ChannelPipeline.fireChannelRead源码分析一SimpleChannelInboundHandler调用链路与线程原理图总结pipeline.fireChannelRead原理图源码分析一ChannelPipeline.fireChannelRead调用invokeChannelRead,传入headContext指定线程public final ChannelPipeline fireCha原创 2022-04-01 17:34:08 · 2357 阅读 · 0 评论 -
netty4核心源码分析第七篇一核心篇服务端NioByteUnsafe处理read事件
文章目录NioByteUnsafe.read读事件处理原理图源码分析一NioByteUnsafe.read二级目录三级目录NioByteUnsafe.read读事件处理原理图源码分析一NioByteUnsafe.read自旋不超过16次读取消息通过allocHandle和allocator分配自适应大小的缓冲区[缓冲区大小的调整在当前read事件处理完成后,自旋过程中不会调整]doReadBytes完成socket数据拷贝至堆外内存fireChannelRead触发netty事件处理本次原创 2022-03-27 21:05:25 · 1048 阅读 · 0 评论 -
netty4核心源码分析第六篇一核心篇服务端ServerBootstrapAcceptor处理ACCEPT事件
文章目录ServerBootstrapAcceptor二级目录三级目录ServerBootstrapAcceptor二级目录三级目录原创 2022-03-25 03:09:46 · 914 阅读 · 0 评论 -
netty4核心源码分析第五篇一核心篇NioEventLoop.run详解
文章目录总原理图selectNow原理图可唤醒select原理图process原理图总原理图selectNow原理图可唤醒select原理图process原理图原创 2022-03-24 02:41:30 · 884 阅读 · 0 评论 -
netty4核心源码分析第四篇一NioEventLoopGroup创建详解
文章目录源码分析一构造函数源码分析一构造函数二原理图MultithreadEventExecutorGroup构造函数源码分析一newChild源码分析一构造函数线程数=2*coreSelectorProvider.provider底层通过DefaultSelectorProvider.create创建KQueueSelectorProvider对象public NioEventLoopGroup() { 传0表示采用默认配置,2*core this(0);}public原创 2022-03-21 20:10:44 · 872 阅读 · 0 评论 -
netty4核心源码分析第三篇一netty模板代码及常见配置
文章目录模板代码eventLoop创建原理图Bootstrap绑定原理图配置总结模板代码创建线程组创建引导类ServerBootstrap一系列配置[包括option和childOption],[childHandler]通过ServerBootstrap执行bind启动netty服务核心代码作用EventLoopGroup workerGroup = new NioEventLoopGroup()创建多个reactor线程ServerBootstrap.bind原创 2022-03-21 19:26:09 · 761 阅读 · 0 评论 -
netty4核心源码分析第二篇一netty源码架构
文章目录源码模块netty类设计总结不同的netty版本代码量差距很大,4.1.8版本代码量达到快50万,所以推荐大家阅读4.0版本,但高版本与低版本核心的一些细节实现又各有特点源码模块transport 核心项目: tcp传输上层api的统一封装[包含nio,bio]codec: 核心项目[但非本系列重点,对协议有兴趣可以关注]buffer: 核心项目[本系列文章重点关注]handler: io事件处理的下游流机制设计实现transport-native-epoll: transpor原创 2022-03-18 01:54:49 · 768 阅读 · 0 评论 -
netty4核心源码分析第一篇一前置篇
这里写目录标题epoll模型实现水平触发[LT]与边缘触发[ET]reactor线程模型单线程模型多线程模型主从线程模型reactor在netty配置双eventLoopGroup的思考NIO编程实战总结epoll模型实现调用epoll_create()建立一个epoll对象(在epoll文件系统中为这个句柄对象分配资源)调用epoll_ctl向event_epoll对象的红黑树添加相关节点,并指明对哪些事件感兴趣[比如netty层面的accept事件,读写事件等]红黑树中的每个节点会与网卡建立回原创 2022-03-17 01:22:18 · 701 阅读 · 0 评论