Netty
superbeyone
士,不可以不弘毅,任重而道远!
展开
-
Netty权威指南_札记02_NIO编程
文章目录1. NIO2. NIO类库2.1 缓冲区Buffer2.2 通道Channel2.3 多路复用器Selector 1. NIO NIO为非阻塞I/O(Non-block I/O) 与Socket类和ServerSocket类相对应,NIO也提供了SocketChannel和ServerSocketChannel两种不同的套接字通道实现,均支持阻塞和非阻塞两种模式。 对于高负载、高并发的...原创 2018-11-06 09:45:55 · 145 阅读 · 1 评论 -
Netty之EventLoop,EventLoopGroup,Channel
文章目录Netty之EventLoop,EventLoopGroup,Channel Netty之EventLoop,EventLoopGroup,Channel 一個EventLoopGroup當中會包含一個或多個EventLoop. 一個EventLoop在它的整個生命週期當中都只會與唯一一個Thread進行綁定. 所有由EventLoop所處理的各種I/O事件都將在它所關聯的那個Thre...原创 2019-01-03 10:20:42 · 421 阅读 · 0 评论 -
Netty之处理器
文章目录Netty之处理器Netty处理器重要概念: Netty之处理器 Netty处理器重要概念: Netty的处理器可以分为两类:入站处理器与出站处理器 入站处理器的顶层是ChannelInboundHandler, 出站处理器的顶层是ChannelOutboundHandler; 数据处理时常用的各种编解码器本质上都是处理器; 编解码器:无论我们向网络中写入的数据是什么类型(int,ch...原创 2019-01-05 21:25:36 · 635 阅读 · 0 评论 -
Netty之AtomicIntegerFieldUploader
文章目录Netty之AtomicIntegerFieldUploader1. AtomicIntegerFieldUploader要点总结:2. volatile: Netty之AtomicIntegerFieldUploader 1. AtomicIntegerFieldUploader要点总结: 更新器更新的必须是int类型变量,不能是其包装类型; 更新器更新的必须是volatile类型变...原创 2019-01-05 17:30:48 · 128 阅读 · 0 评论 -
JDK的ByteBuffer与Netty的ByteBuf之间的差异对比
文章目录JDK的`ByteBuffer`与Netty的`ByteBuf`之间的差异对比:JDK的`ByteBuffer`的缺点:Netty的`ByteBuf`的优点: JDK的ByteBuffer与Netty的ByteBuf之间的差异对比: Netty的ByteBuf采用了读写索引分离的策略(readerIndex与writerIndex),一个初始化(里面尚未有任何数据)的ByteBuf的r...原创 2019-01-04 13:30:20 · 811 阅读 · 0 评论 -
Netty之ByteBuf
文章目录Netty之ByteBuf1. Netty ByteBuf所提供的3种缓冲区类型:2. 总结:`Heap Buffer`(堆缓冲区)`Direct Buffer`(直接缓冲区)`composite buffer`(复合缓冲区)3. 重点:4. JDK的`ByteBuffer`与Netty的`ByteBuf`之间的差异对比: Netty之ByteBuf 1. Netty ByteBuf所提...原创 2019-01-04 13:04:32 · 1320 阅读 · 0 评论 -
Java NIO ByteBuffer
文章目录NIO ByteBuffer1. 使用NIO进行文件读取所涉及的步骤:2. `mark`,`position`,`limit`,`capacity` 四者之间的关系3. flip()方法4. clear()方法5. compact()方法 NIO ByteBuffer 1. 使用NIO进行文件读取所涉及的步骤: 从FileInputStream对象获取到Channel对象 创建Buff...原创 2019-01-03 19:35:01 · 227 阅读 · 0 评论 -
Reactor模式
文章目录Reactor模式 Reactor模式 Reactor模式的角色构成(Reactor模式一共有5种角色构成): Handle(句柄或是描述符): 本质上表示一种资源,是由操作系统提供的;该资源用于表示一个个的事件,比如说文件描述符,或是针对网络编程中的Socket描述符。世界既可以来自于外部,也可以来自于内部;外部事件比如说客户端的连接请求,客服端发送过来数据等;内部事件比如说操作...原创 2018-12-29 14:24:46 · 117 阅读 · 0 评论 -
Netty两种发送消息方式的区别
Netty中两种发送消息的方式: 可以直接写到Channel中 可以写到与ChannelHandler所关联的那个ChannelHandlerContext中 对于方式 1 来说,消息会从ChannelPipeline的末尾开始流动 对于方式 2 来说,消息将从ChannelPipleline中的下一个ChannelHandler开始流动 总结: 凡是调用ChannelHandlerC...原创 2019-01-03 17:35:52 · 4303 阅读 · 4 评论 -
Netty入门级应用实例_01_Hello Netty
文章目录0. 准备工作1. 执行流程分析2. 代码实现2.1 服务器端2.2 子处理器2.3 自定义ChannelHandler3. 执行结果 0. 准备工作 添加pom依赖<dependency> <groupId>io.netty</groupId> <artifactId&a原创 2018-11-20 13:18:31 · 382 阅读 · 2 评论 -
Netty权威指南_札记05_编解码
文章目录Netty权威指南_札记05_编解码1. Java原生序列化1.1 Java实体1.2 测试类1.3 测试结果1.4 结果分析2. Protobuf2.1 Google的Protobuf介绍2.2 简单示例2.3 更多内容3. Facebook的Thrift3.1 Thrift介绍3.2 组成部分4. JBoss Marshalling4.1 JBoss Marshalling介绍4.2 ...原创 2018-11-20 10:51:36 · 186 阅读 · 1 评论 -
Netty入门级应用实例_02_WebSocket发送聊天信息
文章目录Netty入门级应用实例_02_WebSocket0. 准备工作1. 实时通信2. 后台代码2.1 WebSocketServer2.2 WebSocket初始化器2.3 自定义处理消息的Handler3. 页面代码4. 测试结果4.1 页面4.2 控制台 Netty入门级应用实例_02_WebSocket 0. 准备工作 引入pom依赖 <!-- https://mvnrepos...原创 2018-11-20 15:08:40 · 262 阅读 · 0 评论 -
Netty权威指南_札记03_Netty入门应用
文章目录Netty权威指南_札记03_Netty入门应用1. Netty服务端开发1.1 Netty时间服务器服务端 TimeServer1.2 Netty时间服务器服务端 TimeServerHandler2. Netty客户端开发2.1 Netty时间服务器客户端 TimeClient2.2 Netty时间服务器客户端 TimeClientHandler Netty权威指南_札记03_Net...原创 2018-11-09 12:01:28 · 341 阅读 · 1 评论 -
Netty权威指南_札记01_I/O演进之路
文章目录1. Linux网络I/O模型1.1 阻塞 I/O 模型1.2 非阻塞 I/O 模型1.3 I/O 复用模型1.4 信号驱动 I/O 模型1.5 异步 I/O2. I/O多路复用技术3. 为了克服select的缺点,epoll作了很多重大改进,总结如下:3.1 支持一个进程打开的socket描述符(FD)不受限制(仅受限于操作系统的最大文件句柄数)3.2 I/O效率不会随着FD数目的增加而...原创 2018-11-05 14:52:24 · 143 阅读 · 1 评论 -
Netty权威指南_札记04_TCP粘包/拆包问题解决
文章目录Netty权威指南_札记04_TCP粘包/拆包问题解决1. TCP粘包/拆包1.1 TCP粘包/拆包问题说明1.2 TCP粘包/拆包发生的原因1.3 粘包问题解决策略2. 利用LineBasedFrameDecoder解决TCP粘包问题2.1 服务端2.2 客户端 Netty权威指南_札记04_TCP粘包/拆包问题解决 1. TCP粘包/拆包 概念: TCP是个“流”协议,是没有界限的一...原创 2018-11-09 15:28:25 · 222 阅读 · 1 评论 -
Netty_单机百万连接调优
文章目录突破局部文件句柄限制1. 查看当前局部文件句柄限制2. 修改文件3. 添加内容:突破全局文件句柄限制1. 查看全局文件句柄限制2. 临时修改3. 永久修改4. 文件末尾,添加内容5. 使更改生效 突破局部文件句柄限制 1. 查看当前局部文件句柄限制 ulimit -n 2. 修改文件 sudo vim /etc/security/limits.conf 3. 添加内容: * ha...原创 2018-10-10 17:43:27 · 2975 阅读 · 2 评论 -
JDK与Netty之间Future的区别
文章目录JDK与Netty之间Feature的区别 JDK与Netty之间Feature的区别 JDK所提供的Feature只能通过手工的方式检查执行结果,而这个操作时会阻塞的; Netty则对ChannelFuture进行了增强,通过ChannelFutureListener以回调的方式来获取执行结果,去除了手工检查阻塞的操作。 值得注意的是: ChannelFutureListene...原创 2019-01-03 11:03:12 · 572 阅读 · 0 评论