![](https://img-blog.csdnimg.cn/20190911021421665.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Netty
Netty相关
惑边
每一分努力都会在合适的时机得到回报...
展开
-
19-NioEventLoop IO事件处理
文章目录NioEventLoop IO事件处理一、NioEventLoop#run二、功能方法2.1 hasTasks2.2 select(booolean oldWakenUp)2.3 processSelectedKeys2.3.1 processSelectedKeys2.3.2 processSelectedKeysOptimized2.3.3 processSelectedKey(Sel...原创 2019-12-17 13:55:11 · 609 阅读 · 0 评论 -
18-NioEventLoop实例化过程
文章目录NioEventLoop实例化过程一、构造方法1.1 NioEventLoop1.2 SingleThreadEventLoop1.3 SingleThreadEventExecutor1.4 AbstractEventExecutor二、EventLoop 与 Channel 的关联2.1 Channel注册到EventLoop2.2 EventLoopGroup注册Channel三、E...原创 2019-12-16 20:33:09 · 367 阅读 · 0 评论 -
17-EventLoop整体
文章目录EventLoop整体一、上层类和接口1.1 EventExecutor1.2 OrderedEventExecutor1.3 AbstractEventExecutor1.4 AbstractScheduledEventExecutor1.5 SingleThreadEventExecutor二、EventLoop2.1 EventLoop2.2 SingleThreadEventLoo...原创 2019-12-16 15:57:23 · 389 阅读 · 0 评论 -
16-EventLoopGroup整体
文章目录EventLoopGroup整体一、EventLoopGroup和Reactor线程模型1.1 Reactor 线程模型1.2 EventLoopGroup对模型实现二、上层类和接口2.1 EventExecutorGroup2.2 AbstractEventExecutorGroup2.3 MultithreadEventExecutorGroup2.3.1 概览2.3.2 构造方法2....原创 2019-12-12 19:12:59 · 779 阅读 · 0 评论 -
15-ChannelInitializer
文章目录ChannelInitializer一、继承关系二、源码2.1 注释2.2 源码分析2.3 handlerAdded和channelRegistered三、使用示例ChannelInitializerChannelInitializer 是一种特殊的 ChannelHandler,它也是一种 ChannelInboundHandler,它提供了在通道注册到 EventLoop 后初...原创 2019-12-10 15:29:58 · 1751 阅读 · 0 评论 -
12-ChannelHandler实现
文章目录ChannelHandler实现一、SimpleChannelInboundHandler二、MessageToByteEncoder三、LoggingHandler四、小结ChannelHandler实现前面一篇文章介绍了ChannelHandler接口的继承体系,本文选择几个典型的ChannelHandler看一看源码下面是继承体系图,选取的的最底部的实现类,有些是抽象类...原创 2019-12-09 20:23:41 · 284 阅读 · 0 评论 -
13-ByteBuf
文章目录ByteBuf一、ByteBuf1.1 类注释1.2 方法1.2.1 属性相关1.2.2 读写数据1.2.3 查找方法1.2.4 释放操作1.2.5 拷贝操作1.2.6 其他二、ByteBuf和ByteBuffer对比ByteBufByteBuf 是 Netty 中数据容器,它高效的实现了底层数据通信过程中所需要的字节序列的相关操作。ByteBuf 自身的源码就非常多,而且还...原创 2019-12-09 17:19:58 · 332 阅读 · 0 评论 -
14-ReferenceCounted
文章目录ReferenceCounted一、接口定义1.1 注释1.2 方法二、ReferenceCounted的实现2.1 ByteBuf2.2 AbstractReferenceCountedByteBuf2.2.1 AtomicIntegerFieldUpdater2.2.2 deallocate方法三、deallocate的实现3.1 PooledByteBuf3.2 Unpooled...原创 2019-12-09 14:57:35 · 595 阅读 · 0 评论 -
11-ChannelHandler体系结构
文章目录ChannelHandler一、类和继承关系二、ChannelHandler三、两种类型处理器3.1 ChannelInboundHandler3.2 ChannelOutboundHandler四、适配器类4.1 ChannelHandlerAdapter4.2 ChannelInboundHandlerAdapter4.3 ChannelOutboundHandlerAdapter4....原创 2019-10-30 16:01:05 · 568 阅读 · 0 评论 -
10-ChannelHandlerContext
文章目录ChannelHandlerContext一、ChannelHandlerContext二、AbstractChannelHandlerContext2.1 主要属性2.2 构造方法2.3 属性获取方法2.4 事件传播方法2.4.1 fireChannelRegistered2.4.2 fireChannelRead三、实现类3.1 DefaultChannelHandlerContext...原创 2019-10-30 14:51:52 · 1017 阅读 · 0 评论 -
09-ChannelPipeline实现
文章目录ChannelPipeline实现一、DefaultChannelPipeline1.1 属性1.2 构造方法1.3 ChannelPipeline的初始化时机二、添加ChannelHandler2.1 addLast添加方法2.2 callHandlerCallbackLater2.3 PendingHandlerAddedTask任务2.4 callHandlerAdded02.5 c...原创 2019-10-29 19:06:04 · 336 阅读 · 0 评论 -
08-ChannelPipeline接口
文章目录ChannelPipeline一、ChannelPipeline1.1 ChannelInboundInvoker1.2 ChannelOutboundInvoker1.3 ChannelPipeline接口二、事件2.1 入站事件2.2 出站事件三、Channel和ChannelPipeline四、小结五、参考ChannelPipelineChannelPipeline用于组织全...原创 2019-10-26 15:36:42 · 1976 阅读 · 0 评论 -
05-Channel实现之AbstractChannel
文章目录Channel实现之AbstractChannel一、关键属性二、构造方法三、其他方法3.1 属性读取方法3.2 IO操作方法3.3 protected方法3.4 其他方法四、AbstractUnsafe4.1 AbstractUnsafe实现Unsafe4.2 AbstractUnsafe方法五、小结Channel实现之AbstractChannelAbstractChannel是...原创 2019-10-25 17:33:03 · 990 阅读 · 0 评论 -
04-Channel接口
文章目录Channel接口一、ChannelOutboundInvoker二、Channel2.1 接口方法2.2 Unsafe接口三、Channel子接口3.1 AbstractChannel3.2 DuplexChannel3.3 UnixChannel3.4 ServerChannel3.5 SctpChannel3.6 DatagramChannel3.7 Http2StreamChann...原创 2019-10-25 14:45:41 · 8330 阅读 · 0 评论 -
03-Netty中的Future接口
文章目录Netty中的Future体系一、Future1.1 Future接口1.1.1 JDK Future1.1.2 Netty Future1.2 Future派生子接口1.2.1 Promise1.2.2 ChannelFuture1.2.3 ChannelGroupFuture1.2.4 ProgressiveFuture1.2.5 ScheduledFuture1.3 抽象实现类Abs...原创 2019-10-24 15:28:04 · 532 阅读 · 0 评论 -
02-Bootstrap和ServerBootstrap
文章目录Bootstrap和ServerBootstrap一、AbstractBootstrap1.1 doBind和doBind01.2 initAndRegister二、Bootstrap2.1 connect2.2 doResolveAndConnect和doResolveAndConnect02.3 init2.4 doConnect三、ServerBootstrap3.1 属性和构造方法...原创 2019-10-23 20:22:24 · 1107 阅读 · 0 评论 -
01-Netty源码编译
文章目录Netty源码编译一、编译步骤第一步:下载源码第二步:修改第三步:编译二、编译报错三、使用四、参考Netty源码编译一、编译步骤第一步:下载源码地址:https://github.com/netty/netty下载: git clone https://github.com/netty/netty.git切换分支:下载之后,切换到4.1分支: git checkout 4.1...原创 2019-10-18 12:16:41 · 1214 阅读 · 0 评论 -
06-NIO Selector
文章目录NIO Selector一、Selector1.1 Selector和Channel,SelectionKey1.2 源码注释二、源码解读2.1 open2.2 select2.3 keys2.4 wakeup和 close2.5 isOpen()三、SelectorProvider3.1 SelectorProvider.provider()3.2 openSelector四、实现类Ab...原创 2019-11-30 12:37:59 · 342 阅读 · 0 评论 -
08-NIO SelectionKey
文章目录NIO SelectionKey一、SelectionKey二、源码解读2.1 获取Channel和Selector2.2 SelectionKey事件2.3 attachment属性2.4 关闭SelectionKey三、实现类3.1 AbstractSelectionKey3.2 SelectionKeyImpl四、示例五、参考NIO SelectionKey在前面的NIO部分尤...原创 2019-11-29 20:18:30 · 323 阅读 · 0 评论 -
05-NIO Buffer
文章目录NIO Buffer一、Buffer二、主要属性三、主要方法3.1 创建Buffer3.2 读写Buffer、flip、rewind3.4 其他方法3.4.1 mark和reset3.4.2 clear和remaining四、ByteBuffer4.1 构造方法4.2 方法示例五、Buffer到Netty ByteBufNIO Buffer一、BufferNIO 中,对于连接数据的...原创 2019-11-28 17:04:10 · 141 阅读 · 0 评论 -
04-NIO Channel
文章目录NIO Channel一、Channel和流二、Channel的主要实现类三、从Socket到Channel3.1 Socket和ServerSocket3.2 SocketChannel和ServerSocketChannel3.3 联系四、Netty Channel参考NIO ChannelChannel (java.nio.channels.Channel) 是 NIO 的三...原创 2019-11-27 20:22:52 · 228 阅读 · 0 评论 -
03-BIO、NIO到Netty
文章目录BIO、NIO到Netty一、BIO1.1 代码1.1.1 客户端1.1.2 服务端代码1.2 BIO分析二、NIO2.1 NIO核心三剑客2.2 代码2.3 NIO小结三、BIO和NIO3.1 对比3.2 关于流和buffer3.3 关于阻塞四、Netty4.1 了解Netty4.2 Netty 5五、NIO到Netty5.1 更多5.2 更好5.3 组件区别六、参考BIO、NIO到N...原创 2019-11-27 14:45:55 · 405 阅读 · 0 评论 -
02-Reactor模式
文章目录Reactor模式一、两种体系结构1.1 基于线程1.2 基于事件二、Reactor2.1 概念2.2 Reactor模型的组成部分2.2.1 Handle2.2.2 Synchronous Event Demultiplexer2.2.3 Event Handler2.2.4 Concrete Event Handler2.2.5 Initiation Dispatcher2.3 Rea...原创 2019-09-18 19:38:45 · 433 阅读 · 0 评论 -
01-Linux IO模型
文章目录Linux IO模型一、IO模型分类1.1 分类标准1.2 blocking和non-blocking的区别1.3 同步IO和异步IO的区别二、几种IO模型对比2.1 Blocking IO(使用广泛)2.2 非阻塞 I/O(nonblocking IO,浪费 CPU使用很少)2.3 I/O 多路复用( IO multiplexing,广泛使用)2.4 信号驱动I/O2.5 异步 I/O(...原创 2019-09-18 19:31:17 · 230 阅读 · 0 评论