Netty源码分析第五章: ByteBuf 第三节: 内存分配器 内存分配器, 顾明思议就是分配内存的工具, 在netty中, 内存分配器的顶级抽象是接口ByteBufAllocator, 里面定义了有关内存分配的相关api 抽象类AbstractByteBufAllocator实现了ByteBuf ...
分类:
Web程序 时间:
2019-01-01 18:16:31
阅读次数:
236
Netty源码分析第五章: ByteBuf 概述: 熟悉Nio的小伙伴应该对jdk底层byteBuffer不会陌生, 也就是字节缓冲区, 主要用于对网络底层io进行读写, 当channel中有数据时, 将channel中的数据读取到字节缓冲区, 当要往对方写数据的时候, 将字节缓冲区的数据写到cha ...
分类:
Web程序 时间:
2019-01-01 17:55:52
阅读次数:
224
Netty源码分析第四章: pipeline 第七节: 前章节内容回顾 我们在第一章和第三章中, 遗留了很多有关事件传输的相关逻辑, 这里带大家一一回顾 首先看两个问题: 1.在客户端接入的时候, NioMessageUnsafe的read方法中pipeline.fireChannelRead(re ...
分类:
Web程序 时间:
2019-01-01 13:24:11
阅读次数:
209
Netty源码分析第四章: pipeline 第6节: 传播异常事件 讲完了inbound事件和outbound事件的传输流程, 这一小节剖析异常事件的传输流程 首先我们看一个最最简单的异常处理的场景: 我们在handler的channelRead方法中主动抛出异常, 模拟程序中出现异常的场景, 经 ...
分类:
Web程序 时间:
2019-01-01 13:18:00
阅读次数:
269
Netty源码分析第四章: pipeline 第四节: 传播inbound事件 有关于inbound事件, 在概述中做过简单的介绍, 就是以自己为基准, 流向自己的事件, 比如最常见的channelRead事件, 就是对方发来数据流的所触发的事件, 己方要对这些数据进行处理, 这一小节, 以激活ch ...
分类:
Web程序 时间:
2019-01-01 12:31:43
阅读次数:
521
Netty源码分析第五章: pipeline 第五节: 传播ountBounf事件 了解了inbound事件的传播过程, 对于学习outbound事件传输的流程, 也不会太困难 在我们业务代码中, 有可能使用wirte方法往写数据: 当然, 直接调用write方法是不能往对方channel中写入数据 ...
分类:
Web程序 时间:
2019-01-01 12:28:44
阅读次数:
212
Netty源码分析第三章: 客户端接入流程 第五节: 监听读事件 我们回到AbstractUnsafe的register0()方法: doRegister()做完实际的注册之后, 会走到if (isActive())这个判断, 因为这个时候链路已经完成, 所以这里是true, 默认判断条件if (f ...
分类:
Web程序 时间:
2019-01-01 11:13:04
阅读次数:
217
Netty源码分析第三章: 客户端接入流程 第四节: NioSocketChannel注册到selector 我们回到最初的NioMessageUnsafe的read()方法: 在while循环结束之后, 将会通过一个for循环遍历readBuf集合, 并将创建的NioSocketChannel传入 ...
分类:
移动开发 时间:
2019-01-01 11:12:38
阅读次数:
136
Netty源码分析第三章: 客户端接入流程 第三节: NioSocketChannel的创建 回到上一小结的read()方法: 我们继续剖析int localRead = doReadMessages(readBuf)这一部分逻辑 我们首先看readBuf: 这里只是简单的定义了一个ArrayLis ...
分类:
移动开发 时间:
2019-01-01 11:09:19
阅读次数:
220
Netty源码分析第三章: 客户端接入流程 第二节: 处理接入事件之handle的创建 上一小节我们剖析完成了与channel绑定的ChannelConfig初始化相关的流程, 这一小节继续剖析客户端连接事件的处理 回到上一章NioEventLoop的processSelectedKey ()方法: ...
分类:
Web程序 时间:
2019-01-01 11:08:00
阅读次数:
225