Netty
文章平均质量分 90
Netty源码及底层原理解析,深入剖析Netty源码
暴躁的鱼
leetcode: https://leetcode.cn/u/maxatom/
掘金: https://juejin.cn/user/606586149804062/posts
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty源码-业务流程之请求处理
findContextInbound找到一个责任节点(Inbound类型)执行,MASK_CHANNEL_READ是channel read掩码。MASK_ONLY_INBOUND(下图2)表示所有Inbound事件掩码集合,MASK_CHANNEL_READ和MASK_ONLY_INBOUND与运算结果不是0,就表示执行channelRead事件原创 2024-10-03 12:24:12 · 856 阅读 · 0 评论 -
Netty源码-业务流程之写数据
我们看到下图中,先通过findContextOutbound方法找到下一个责任节点再执行。如果我们自定义方法里用的是ctx.writeAndFlush(写入并发送数据),那么下面就是走第一个分支,否则走第二个分支,继续进入next.invokeWrite我们来到AbstractChannel.AbstractUnsafe#write,又是Unsafe类型,Netty的大量读写操作在这个类,进入最后一行的方法addMessage,该方法里面有对写入高水位的判断,原创 2024-09-30 09:30:00 · 1915 阅读 · 0 评论 -
Netty源码解析-响应式实现(Reactor模式)
我们看到上面通过channelFactory构造了channel,最下面一行通过config().group().register(channel)注册channel。那么我们进入group()看一下mainReactor需要自己定义,即是ServerBootstrap的两个EventLoopGroup中的parentGroup,初始化的时候设置进去。然后在bind的时候将Group注册到channel上,同时只会注册一个。原创 2024-09-27 18:23:53 · 954 阅读 · 0 评论 -
Netty源码解析-锁机制
从上面的讨论的五种锁优化技术可以看出来,Netty对锁的优化可以说做到极致,各种场景下都对锁的优化有大量使用,这也是Netty高性能的一个重要原因,这些值得我们学习在项目中使用。原创 2024-09-26 09:30:00 · 1440 阅读 · 0 评论 -
Netty源码解析-Netty源码包及IO模式源码分析
Netty通过channel的反射工厂获取channel的构造器,channel类型通过参数传递(这里实现对不同类型IO的支持),channel通过反射工厂在需要的时候构造出来(这里是一个优化)。我们可以看到Netty的代码确实做了很多优化。原创 2024-09-24 09:30:00 · 2152 阅读 · 0 评论 -
Netty源码解析-零拷贝
Netty源码系列-Netty如何使用零拷贝零拷贝是一种很重要的IO优化策略,在一些开源软件上都有应用,比如Kafka也使用零拷贝技术来提升吞吐量。原创 2024-09-23 09:30:00 · 684 阅读 · 0 评论 -
Netty源码-业务流程之构建连接
从前面的源码分析文章我们知道NioEventLoop是处理请求的线程,通过Selector获取事件,当它收到READ、ACCEPT事件的时候会去构建连接,通过JDK构建连接。原创 2024-09-22 09:30:00 · 431 阅读 · 0 评论 -
Netty对处理粘包和半包的支持
Netty对粘包和拆包的处理非常方便,有很多方法。本文介绍几种方法,并讨论优缺点,可以根据需求选择合适的原创 2024-09-21 09:30:00 · 1039 阅读 · 0 评论 -
Netty源码解析-请求处理与多路复用
Netty源码系列-NioEventLoop,在正常情况下我们还是使用GenericEventExecutorChooser来选择EventLoop,这里PowerOfTwoEventExecutorChooser对next方法做了优化,所以在EventLoop组长度是2的指数的时候我们可以更快的处理跨平台通过java虚拟机实现,调用java虚拟机的方法,在不同的平台,该方法由不同的java虚拟机实现,这样实现跨平台,这蒸是java通过虚拟机实现跨平台的方式。原创 2024-09-20 10:00:00 · 1221 阅读 · 0 评论 -
Netty与网络编程
Netty的特点1)高并发:基于 NIO(Nonblocking IO,非阻塞IO)开发,对比于 BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高;2)传输快:传输依赖于零拷贝特性,尽量减少不必要的内存拷贝,实现了更高效率的传输;3)封装好:封装了 NIO 操作的很多细节,提供了易于使用调用接口。Netty的优势1)使用简单:封装了 NIO 的很多细节,使用更简单;2)功能强大:预置了多种编解码功能,支持多种主流协议;原创 2024-09-16 09:00:00 · 1635 阅读 · 0 评论 -
Netty源码-Server启动流程
Netty之Server启动流程源码深度解析原创 2024-09-15 10:00:00 · 885 阅读 · 0 评论 -
Netty源码-业务流程之读事件
Netty业务流程之读事件源码深度解析原创 2024-09-13 20:21:20 · 513 阅读 · 0 评论
分享