
Netty
文章平均质量分 95
netty源码解析
demon7552003
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Netty Eventloop详解
Netty提供三种线程模型:单线程模型(所有I/O操作在一个线程处理,适用于小并发场景)、多线程模型(单独线程组处理I/O操作,适用于多数场景)、主从多线程模型(独立线程池处理连接,适合百万级并发)。Netty通过配置可以灵活切换模型,并采用无锁化设计和串行化处理优化性能。NioEventLoop作为核心线程,不仅处理I/O读写,还执行系统Task和定时任务,避免锁竞争。源码分析揭示了其高效的事件循环机制。原创 2025-06-22 15:32:46 · 919 阅读 · 0 评论 -
Netty ChannelPipeline和ChannelHandler详解
Netty的ChannelPipeline采用职责链模式管理ChannelHandler,支持事件的拦截和处理。事件分为inbound(如连接建立、读事件)和outbound(如连接操作、消息发送)两类。Pipeline通过链表结构维护Handler,用户只需继承ChannelHandlerAdapter并覆盖关心的方法即可实现自定义拦截。Netty在创建Channel时会自动初始化Pipeline,开发者只需添加自定义Handler。源码分析显示Pipeline继承ChannelInboundInvoke原创 2025-06-22 15:31:33 · 936 阅读 · 0 评论 -
Netty Channel 详解
Netty没有使用JDK原生的NIO Channel,而是自定义实现了Channel接口,主要原因包括:1) JDK原生的SocketChannel和ServerSocketChannel缺乏统一接口,不便于使用;2) 继承扩展原生Channel难度大;3) 需要与Netty架构深度整合;4) 自定义实现更灵活。Netty的Channel采用Facade模式统一封装网络I/O操作,通过聚合而非继承的方式整合功能类,提供了更完整的操作视图。核心实现包括AbstractChannel、AbstractNioCh原创 2025-06-22 15:30:18 · 719 阅读 · 0 评论 -
Netty--ChannelHandler和ChannelPipeline
ChannelHandler类图ChannelHandlerpublic interface ChannelHandler { void handlerAdded(ChannelHandlerContext ctx) throws Exception; void handlerRemoved(ChannelHandlerContext ctx) throws Ex...原创 2019-09-15 17:36:22 · 362 阅读 · 0 评论 -
Netty--Future和Promise
目录概述JDK.FutureNetty.FutureChannelFuturePromise继承关系源码分析AbstractFutureCompleteFutureDefaultPromise概述Future代表了异步操作的结果,Netty的Future对JDK的Future进行了扩展。JDK.Future仅定义了是否完成以及是否取消的...原创 2019-09-15 09:15:24 · 372 阅读 · 0 评论 -
Netty--ByteBuf
目录NIO ByteBuffer局限性ByteBuf功能基本功能读写功能扩容与收缩查找Derived buffersByteBuffer互转换ByteBuf源码ByteBuf结构继承关系分类AbstractByteBufAbstractReferenceCountedByteBufUnpooledHeapByteBufPoole...原创 2019-09-14 19:27:59 · 233 阅读 · 0 评论 -
Netty--Reactor模式
目录Reactor线程模型Reactor单线程模型线程的职责应用场景Reactor多线程模型线程职责应用场景主从Reactor多线程模型Netty模型Netty单线程模型Netty多线程模型Netty主从模型Reactor线程模型Reactor单线程模型Reactor单线程模型,指的是所有的I/O操作都在同一个NIO线程上面完成。...原创 2019-09-14 07:57:12 · 412 阅读 · 0 评论 -
NIO--Selector
目录概述SelectorSelectableChannelSelectionKey建立选择器使用选择键使用选择器选择过程停止选择过程管理选择键并发性异步关闭能力选择过程的可扩展性概述Selector选择器类管理着一个被注册的通道集合的信息和它们的就绪状态。通道是和选择器一起被注册的,并且使用选择器来更新通道的就绪状态。Sel...原创 2019-09-13 16:48:50 · 212 阅读 · 0 评论 -
NIO--Channel
类结构图接口Channelpublic interface Channel extends Closeable { public boolean isOpen(); public void close() throws IOException;}InterruptibleChannel标记接口,表示支持中断AsynchronousChannel...原创 2019-09-13 14:14:27 · 269 阅读 · 0 评论 -
NIO--Buffer
Buffer缓冲区基础概念上,缓冲区是包在一个对象内的基本数据元素数组。Buffer类相比一个简单数组的优点是它将关于数据的数据内容和信息包含在一个单一的对象中。Buffer类以及它专有的子类定义了一个用于处理数据缓冲区的API。属性所有的缓冲区都具有四个属性来提供关于其所包含的数据元素的信息。它们是:容量(Capacity)缓冲区能够容纳的数据元素的最大数量。这一容量...原创 2019-07-12 20:30:20 · 368 阅读 · 0 评论 -
Java正则表达式
正则表达式基础参考书籍:精通正则表达式。Java正则表达式APIjava.util.regex程序包只包含用于实现Java正则表达式处理技术的两个类,分别名为Pattern和Matcher。自然而然你会想到正则表达式由模式匹配(pattern matching)而成。java.lang还定义了一个新接口,它支持这些新的类。在研究Patternt和Matcher之前,我们先快速浏览一下C...原创 2019-07-06 19:03:50 · 3143 阅读 · 1 评论 -
NIO--字符集
字符集基础术语Character Set(字符集)字符的集合,也就是带有特殊语义的符号。字母“A”是一个字符。“%”也是一个字符。没有内在数字价值,与ASCII,Unicode,甚至是电脑也没有任何的直接联系。在电脑产生前的很长一段时间内,符号就已经存在了。Coded Character Set(编码字符集)一个数值赋给一个字符的集合。把代码赋值给字符,这样它们就可以用特定的字符编...原创 2019-07-06 17:25:03 · 375 阅读 · 0 评论 -
时间轮算法解析(Netty HashedWheelTimer源码解读)
1、背景时间轮算法可以用于高效的执行大量的定时任务。在Netty中的一个典型应用场景是判断某个连接是否idle,如果idle(如客户端由于网络原因导致到服务器的心跳无法送达),则服务器会主动断开连接,释放资源。得益于Netty NIO的优异性能,基于Netty开发的服务器可以维持大量的长连接,单台8核16G的云主机可以同时维持几十万长连接,及时掐掉不活跃的连接就显得尤其重要。2、算法简...转载 2019-06-15 07:21:43 · 1228 阅读 · 0 评论