![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA NIO 与 netty 深入解析
文章平均质量分 92
摸鱼兄
这个作者很懒,什么都没留下…
展开
-
七、Java NIO 深入解读--Netty高可靠性设计与Netty协议栈
Netty协议栈包括消息头和消息体。原创 2023-09-03 20:33:27 · 136 阅读 · 0 评论 -
六、Java NIO 深入解读--编解码技术
编写网络应用程序时,因为数据在网络中传输的都是二进制字节码数据,在发送数据时就需要编码,接收数据时就需要解码。codec(编解码器) 的组成部分有两个:decoder(解码器)和 encoder(编码器)。encoder 负责把业务数据转换成字节码数据,decoder 负责把字节码数据转换成业务数据。原创 2023-09-03 20:05:36 · 115 阅读 · 0 评论 -
五、Java NIO 深入解读--TCP粘包、拆包
TCP 是面向连接的,面向流的,提供高可靠性服务。收发两端(客户端和服务器端)都要有一一成对的 socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,,将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样做虽然提高了效率,但是接收端就难于分辨出完整的数据包了,因为面向流的通信是无消息保护边界的。由于 TCP 无消息保护边界, 需要在接收端处理消息边界问题,也就是我们所说的粘包、拆包问题。原创 2023-09-03 17:12:55 · 374 阅读 · 0 评论 -
四、Java NIO 深入解读--Netty模型
这样线程模型就实现了统一。从调度层面看,也不存在从EventLoop线程中再启动其他类型的线程用于异步执行另外的任务,这样就避免了多线程并发操作和锁竞争,提升了IO线程的处理和调度性能。原创 2023-09-03 16:03:25 · 92 阅读 · 0 评论 -
三、Java NIO 深入解读--Reactor模型
目前存在的线程模型有:传统阻塞 I/O 服务模型Reactor 模式根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现单 Reactor 单线程;单 Reactor 多线程;主从 Reactor 多线程Netty 线程模式(Netty 主要基于主从 Reactor 多线程模型做了一定的改进,其中主从 Reactor 多线程模型有多个 Reactor)原创 2023-09-03 15:35:02 · 201 阅读 · 0 评论 -
一、Java NIO 深入解读
Java NIO 全称,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的NIO是 面向缓冲区(Buffer)或者块编程的。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供高伸缩性网络。也就是说缓冲区实现了NIO的非阻塞模式。原创 2023-09-03 11:24:10 · 129 阅读 · 0 评论 -
二、Java NIO 深入解读--零拷贝
零拷贝,是从操作系统的角度来说的。因为内核缓冲区之间,没有数据是重复的(只有 kernel buffer 有一份数据)。零拷贝不仅仅带来更少的数据复制,还能带来其他的性能优势,例如更少的上下文切换,更少的 CPU 缓存伪共享以及无 CPU 校验和计算。原创 2023-09-03 14:38:26 · 59 阅读 · 0 评论