Netty
文章平均质量分 89
峥嵘岁月1
这个作者很懒,什么都没留下…
展开
-
Netty-架构之道
Netty逻辑架构Reactor通信调度层由一系列辅助类完成,包括Reactor线程NioEventLoop及其父类,NioSocketChannel/NioServerSocketChannel,ByteBuf等。主要的职责是监听网络的读写和连接操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,如连接创建,读写事件,再将这些事件触发到PipeLine中,由Pipeline管理的职责链进行处理。职责链ChannelPipeline:负责事件在职责链中的有序传播,同时负责动态编排职.原创 2021-07-07 16:01:39 · 94 阅读 · 0 评论 -
Netty-Reactor和NioEventLoop
Reactor线程模型Reactor单线程模型:所有的I/O操作都在同一个NIO线程中完成。例如,通过Acceptor 类接收客户端的TCP连接请求消息,当链路建立成功之后,通过Dispatch将对应的ByteBuffer派发到指定的Handler上,进行消息解码。用户线程消息编码后通过NIO线程将消息发送给客户端。适合小容量场景,对于高负载、大并发的应用场景不适合。会产生的问题如下:* 一个NIO线程同时处理成百上千的链路,性能上无法支撑。* 线程负载过重后,处理速度变慢,导致大量客户端连原创 2021-07-07 11:47:55 · 130 阅读 · 0 评论 -
Netty- 服务端和客户端的创建
Netty私有协议栈Netty协议栈用于内部各模块之间的通信,它基于TCP/IP协议栈,是一个类HTTP协议的应用层协议栈,相比于传统的标准协议栈,它更加轻巧、灵活和实用。Netty节点并没有服务端和客户端的区分,谁先发起连接,谁就作为客户端,另一方作为服务端。一个Netty节点即可以作为客户端连接另一个Netty节点,又可以作为服务端被其他节点连接。协议族的功能:用于业务内部各模块之间的消息交互和服务调用。基于Netty的NIO通信框架,提供高性能的异步通信能力:提供消息的编解码框架,可以实原创 2021-07-06 21:04:10 · 542 阅读 · 0 评论 -
Netty-TCP粘包/拆包和编解码
TCP是”流“协议,无消息保护边界,所以一个完整的包可能会被TCP划分成多个包进行发送,也可能把多个包封装成一个大的数据包发送。所以我们需要在接收端处理消息边界问题。当服务端一次收到两个数据包,D1和D2粘合在一起,就是TCP粘包当服务端分两次读取到了两个数据包,第一次读取完整的D1包和D2的部分内容,第二次读取了D2的剩余内容,就是TCP拆包。TCP粘包/拆包的原因应用程序写入的字节大小大于套接口发送缓冲区的大小,会导致拆包。进行MSS大小的TCP分段,会导致拆包。以太网帧的pay原创 2021-07-06 14:46:32 · 461 阅读 · 0 评论 -
Netty-NIO
I/O模型: https://blog.csdn.net/qq_45126604/article/details/118407048I/O多路复用I/O多路复用通过把多个I/O的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。I/O多路复用的优势:系统开销小,不需要创建新的额外进程或者线程,也不需要维护这些进程和线程的运行,降低系统的维护工作量,节省资源。I/O多路复用的主要应用场景:1. 服务器需要同时处理多个监听状态或者多个连接状态的套接字..原创 2021-07-06 11:39:05 · 76 阅读 · 0 评论