![](https://img-blog.csdnimg.cn/20190315134646482.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Netty
Netty
superbeyone
士,不可以不弘毅,任重而道远!
展开
-
Reactor模式
文章目录Reactor模式Reactor模式Reactor模式的角色构成(Reactor模式一共有5种角色构成):Handle(句柄或是描述符):本质上表示一种资源,是由操作系统提供的;该资源用于表示一个个的事件,比如说文件描述符,或是针对网络编程中的Socket描述符。世界既可以来自于外部,也可以来自于内部;外部事件比如说客户端的连接请求,客服端发送过来数据等;内部事件比如说操作...原创 2018-12-29 14:24:46 · 116 阅读 · 0 评论 -
Netty之处理器
文章目录Netty之处理器Netty处理器重要概念:Netty之处理器Netty处理器重要概念:Netty的处理器可以分为两类:入站处理器与出站处理器入站处理器的顶层是ChannelInboundHandler,出站处理器的顶层是ChannelOutboundHandler;数据处理时常用的各种编解码器本质上都是处理器;编解码器:无论我们向网络中写入的数据是什么类型(int,ch...原创 2019-01-05 21:25:36 · 634 阅读 · 0 评论 -
Netty之AtomicIntegerFieldUploader
文章目录Netty之AtomicIntegerFieldUploader1. AtomicIntegerFieldUploader要点总结:2. volatile:Netty之AtomicIntegerFieldUploader1. AtomicIntegerFieldUploader要点总结:更新器更新的必须是int类型变量,不能是其包装类型;更新器更新的必须是volatile类型变...原创 2019-01-05 17:30:48 · 127 阅读 · 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 · 810 阅读 · 0 评论 -
Netty之ByteBuf
文章目录Netty之ByteBuf1. Netty ByteBuf所提供的3种缓冲区类型:2. 总结:`Heap Buffer`(堆缓冲区)`Direct Buffer`(直接缓冲区)`composite buffer`(复合缓冲区)3. 重点:4. JDK的`ByteBuffer`与Netty的`ByteBuf`之间的差异对比:Netty之ByteBuf1. Netty ByteBuf所提...原创 2019-01-04 13:04:32 · 1315 阅读 · 0 评论 -
Netty两种发送消息方式的区别
Netty中两种发送消息的方式:可以直接写到Channel中可以写到与ChannelHandler所关联的那个ChannelHandlerContext中对于方式 1 来说,消息会从ChannelPipeline的末尾开始流动对于方式 2 来说,消息将从ChannelPipleline中的下一个ChannelHandler开始流动总结:凡是调用ChannelHandlerC...原创 2019-01-03 17:35:52 · 4298 阅读 · 4 评论 -
JDK与Netty之间Future的区别
文章目录JDK与Netty之间Feature的区别JDK与Netty之间Feature的区别JDK所提供的Feature只能通过手工的方式检查执行结果,而这个操作时会阻塞的;Netty则对ChannelFuture进行了增强,通过ChannelFutureListener以回调的方式来获取执行结果,去除了手工检查阻塞的操作。值得注意的是:ChannelFutureListene...原创 2019-01-03 11:03:12 · 570 阅读 · 0 评论 -
Netty之EventLoop,EventLoopGroup,Channel
文章目录Netty之EventLoop,EventLoopGroup,ChannelNetty之EventLoop,EventLoopGroup,Channel一個EventLoopGroup當中會包含一個或多個EventLoop.一個EventLoop在它的整個生命週期當中都只會與唯一一個Thread進行綁定.所有由EventLoop所處理的各種I/O事件都將在它所關聯的那個Thre...原创 2019-01-03 10:20:42 · 417 阅读 · 0 评论 -
Netty入门级应用实例_02_WebSocket发送聊天信息
文章目录Netty入门级应用实例_02_WebSocket0. 准备工作1. 实时通信2. 后台代码2.1 WebSocketServer2.2 WebSocket初始化器2.3 自定义处理消息的Handler3. 页面代码4. 测试结果4.1 页面4.2 控制台Netty入门级应用实例_02_WebSocket0. 准备工作引入pom依赖<!-- https://mvnrepos...原创 2018-11-20 15:08:40 · 260 阅读 · 0 评论 -
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 · 380 阅读 · 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权威指南_札记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权威指南_札记03_Netty入门应用
文章目录Netty权威指南_札记03_Netty入门应用1. Netty服务端开发1.1 Netty时间服务器服务端 TimeServer1.2 Netty时间服务器服务端 TimeServerHandler2. Netty客户端开发2.1 Netty时间服务器客户端 TimeClient2.2 Netty时间服务器客户端 TimeClientHandlerNetty权威指南_札记03_Net...原创 2018-11-09 12:01:28 · 340 阅读 · 1 评论 -
Netty权威指南_札记02_NIO编程
文章目录1. NIO2. NIO类库2.1 缓冲区Buffer2.2 通道Channel2.3 多路复用器Selector1. NIONIO为非阻塞I/O(Non-block I/O)与Socket类和ServerSocket类相对应,NIO也提供了SocketChannel和ServerSocketChannel两种不同的套接字通道实现,均支持阻塞和非阻塞两种模式。对于高负载、高并发的...原创 2018-11-06 09:45:55 · 144 阅读 · 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 · 141 阅读 · 1 评论 -
Netty_单机百万连接调优
文章目录突破局部文件句柄限制1. 查看当前局部文件句柄限制2. 修改文件3. 添加内容:突破全局文件句柄限制1. 查看全局文件句柄限制2. 临时修改3. 永久修改4. 文件末尾,添加内容5. 使更改生效突破局部文件句柄限制1. 查看当前局部文件句柄限制ulimit -n2. 修改文件sudo vim /etc/security/limits.conf3. 添加内容:* ha...原创 2018-10-10 17:43:27 · 2972 阅读 · 2 评论