Netty出现背景
- Java NIO难用
- 据说存在bug
- 业界其他NIO框架不成熟
Netty主要解决两个相应关注领域
- (1)异步和事件驱动的实现。
- (2)一组设计模式,将应用逻辑与网络层解耦。
特性
- 统一API,适用于不同协议
- 基于灵活、可扩展的事件驱动模型
- 高度可定制的线程模型
- 更好的吞吐量,低延迟
- 尽量减少不必要的内存拷贝
高性能
- 同步非阻塞,基于Reactor模型实现
- TCP接收和发送缓冲区使用直接内存代替堆内存
- 通过内存池循环利用ByteBuf,避免频繁创建和销毁带来的性能损耗
逻辑架构
Reactor通信调度层
主要职责:该层的主要职责是监听网络的读写和连接操作,负责将网络层的数据读取到内存缓冲区中,然后触发各种网络事件,例如连接创建、连接激活、读事件、写事件等等。将这些事件触发到PipeLine中,由PipeLine管理的职责链来后续进行处理。
PipeLine
PipeLine是职责链ChannelPipeLine,它负责事件在职责链中的有序传播,同时负责动态的编排职责链。职责链可以选择监听和处理自己关心的事件,它可以拦截处理和向后/向前传播事件。
原文地址:https://www.cnblogs.com/boycelee/p/10014403.html
时间: 2024-10-31 05:00:55