![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
文章平均质量分 75
小乐乐的天台
这个作者很懒,什么都没留下…
展开
-
Netty心跳检测机制
Netty心跳检测机制1、Netty心跳机制简介1.1、什么是心跳机制1.2、为什么要有Netty心跳机制?2、实现 Netty 的心跳机制2.1、IdleStateHandler的超时逻辑判断分析2.2、重点代码2.2.1、重试重点源码剖析2.2.2、自定义处理类1、Netty心跳机制简介1.1、什么是心跳机制所谓心跳, 即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包, 通知对方自己还在线, 以确保 TCP 连接的有效性.1.2、为什么要有Netty心跳机制?因为如原创 2022-01-03 11:32:42 · 1573 阅读 · 0 评论 -
Netty粘包拆包
Netty粘包拆包1、什么是粘包拆包?2、解决方案3、代码示例3.1、MyClient3.2、MyClientHandler3.3、MyServer3.4、MyServerHandler3.5、MyMessageDecoder3.6、MyMessageEncoder3.7、MyMessageProtocol1、什么是粘包拆包?粘包拆包一般是发生在TCP协议层的,TCP作为传输层一般不知道上层(这里指的是我们的代码业务层)数据的具体含义,它会根据TCP缓冲区 的实际情况进行数据包的划分,所以在业务上认为原创 2022-01-03 09:54:55 · 282 阅读 · 0 评论 -
Netty编解码
Netty编解码1、什么是编解码?2、Netty编解码涉及到的组件。2.1、Channel2.2、ChannelPipeline2.3、ChannelHandler2.4、三个组件之间的关系3、protostuff编解码3.1、引入相关依赖3.2、工具类代码1、什么是编解码?在我们计算机网络IO通信的过程中,我们传输的都是二进制字节流,但是我们程序中一般使用的都是字符串、整型等数据类型,所以在传输之前就需要编解码。特点:如果是向外发送数据,那就需要编码之后再发送,如果是接收到数据,那么就需要解码之后原创 2022-01-03 09:22:04 · 487 阅读 · 0 评论 -
Netty中的ByteBuf简介
Netty中的ByteBuf简介1、什么是ByteBuf?2、示例代码1、什么是ByteBuf?简单理解呢,ByteBuf 就是一个byte数组的缓冲区(也就是一个数组),数组中每个字节用来存放信息,大致结构图如下所示:由上面的图可以看出,ByteBuf 提供了两个索引,一个用于读取数据,一个用于写入数据。这两个索引通过在字节数组中移动,来定 位需要读或者写信息的位置。特点:当从 ByteBuf 读取时,它的 readerIndex(读索引)将会根据读取的字节数递增。同样,当写 ByteBu原创 2022-01-03 09:21:36 · 366 阅读 · 0 评论 -
Netty简介、Reactor线程模型、Netty模块
Netty简介、Reactor线程模型、Netty模块1、Netty简介1.1、什么是Netty?1.2、为什么要使用Netty?1.3、Netty的使用场景2、传统IO模型与Reactor三种线程模型2.1、传统阻塞 I/O 服务模型2.2、单 Reactor 单线程2.3、单 Reactor 多线程2.4、主从 Reactor 多线程2.5、Netty 工作架构图3、Netty模块组件3.1、Bootstrap、ServerBootstrap3.2、Future、ChannelFuture3.3、Cha原创 2022-01-03 08:55:30 · 185 阅读 · 0 评论 -
AIO模型(Asynchronous I/O)
AIO模型(Asynchronous I/O)1、什么是AIO?2、单线程aio示例代码3、多线程aio示例代码4、aio的使用场景1、什么是AIO?Asynchronous I/O,异步io模型,异步非阻塞,无论是客户端的连接请求还是读写请求都会异步执行, 由操作系统完成后回调通知服务端程序启动线程去处理, 一般适用于连接数较多且连接时间较长的应用。2、单线程aio示例代码简单来说就是在连接建立时都会去注册一个回调函数,具体的逻辑由这个回调函数操作。public class AIOSer原创 2021-12-26 13:50:52 · 1727 阅读 · 0 评论 -
NIO模型(Non Blocking IO)
NIO模型(Non Blocking IO)1、什么是NIO2、NIO初始版本示例代码2.1、服务端代码2.2、客户端测试2.3、原始版本出现的问题3、NIO引入多路复用器3.1、什么是多路复用器3.2、NIO引入多路复用器3.3、NIO引入多路复用器之后的代码1、什么是NIO在上一篇博客我们说到了BIO,阻塞式IO模型,在连接建立请求时和接收数据时会发生阻塞,但是多线程可以解决这个问题,但随之产生的问题就是每一个请求都会对应一个线程,当请求过多时,线程也就是1:1的增加,太多了,非常消耗资源,一般服原创 2021-12-26 13:15:56 · 1068 阅读 · 0 评论 -
BIO模型(Blocking IO)
BIO模型(Blocking IO)1、什么是BIO模型?2、BIO的单线程模式2.1、服务端2.2、客户端测试3、BIO多线程模式3.1、多线程服务端代码3.2、客户端测试4、客户端代码示例5、总结5.1、BIO模型的优势5.2、BIO模型的缺点1、什么是BIO模型?BIO模型,也叫阻塞式IO模型,在客户端与服务端建立连接时会阻塞,在服务端等待客户端发消息时也会阻塞。2、BIO的单线程模式2.1、服务端大概解释一下下面这些代码。1、首先服务端在启动时创建一个Socket连接并使得9000原创 2021-12-25 12:44:48 · 1525 阅读 · 1 评论