
网络编程
柠檬丶Ewing
以输出倒逼输入
展开
-
NIO网络编程三大核心理念
Buffer缓冲区 Channel通道 Selector选择器 1 Buffer缓冲区 本质是一个可以写入数据的内存块(类似于数组),可以更轻松地使用内存块,相对于直接对数组操作,buffer api更加容易操作和管理。 使用Buffer进行数据写入与读取,需要进行四个步骤: 将数据写入缓冲区 调用buffer.flip(),转换为读取模式 缓冲区读取数据 调用buffer.clear(...原创 2019-12-11 16:06:28 · 177 阅读 · 0 评论 -
Netty线程模型
reactor单线程模型 reactor多线程模型 主从reactor多线程模型 Netty线程模型 1 reactor单线程模型 使用的是异步非阻塞I/O,所有的I/O都是不会导致阻塞的。通过Acceptor类接收客户端的TCP连接请求消息,当链路建立成功之后,通过Dispatch将对应的ByteBuffer派发到指定的Handler上,进行消息解码,用户线程消息编码后通过NIO线程将消息发...原创 2019-12-02 17:52:09 · 193 阅读 · 0 评论 -
Netty零拷贝机制
ByteBuf PooledByteBuf对象、内存复用 零拷贝机制 1 ByteBuf ByteBuf操作 ByteBuf动态扩容 选择合适的ByteBuf实现 1.1 ByteBuf操作 ByteBuf三个重要属性:capacity容量、readerIndex读取位置、writerIndex写入位置。提供了两个指针变量来支持顺序读和写操作,分别是读操作readerIndex和写操作w...原创 2019-11-27 15:28:23 · 255 阅读 · 0 评论 -
Netty责任链设计模式
1 设计模式 - 责任链模式 定义 实现责任链模式 1.1 定义 责任链模式:为请求创建了一个处理对象的链。 发起请求和具体处理请求的过程进行解耦:责任链上的handler负责处理请求,客户只需将请求发送到链上,无需关心请求的处理细节和请求的传递。 请求我想要一个微信小程序责任链调用设计-handler开发-handler测试-handler上线-handler 1.2 实现责任链模式 实...原创 2019-11-12 14:31:18 · 493 阅读 · 0 评论