Netty 整体架构学习笔记
Netty 整体架构可通过三方面:整体结构、逻辑架构和源码结构进行学习。
Netty 整体结构,直接引用官网的图:
从图中可以看出,包含:Core、Protocol Support、Transport Services 三层。
1.Core 核心层
它提供了底层网络通信的通用抽象和实现,包括可扩展的事件模型、通用的通信 API、支持零拷贝的 ByteBuf 等。
2.Protocol Support 协议支持层
协议支持层包括了主流的协议的编解码实现,如 Http、Websocket、Protobuf、大文件传输、文本、二进制等,此外还支持自定义的应用层协议。
3.Transport Service 传输服务层
传输服务层提供了网络传输能力的定义和实现方法。支持 Socket、Http 隧道等传输方式。对 TCP、UDP 等数据传输做了抽象和封装,让使用者增加聚焦在业务逻辑的开发上,而不必关系底层数据传输的处理细节。
Netty 逻辑架构
Netty 的逻辑处理架构属于典型的网络分层架构,分为网络通信层、事件调度层、服务编排层。
网络通信层的主要职责是:执行网络 IO 的操作。支持多种网络协议和 I/O 模型的连接操作。核心组件包括:BootStrap、ServerBootStrap、Channel 三个组件。
事件调度层的职责是通过 Reactor 线程模型对各类事件进行聚合处理,通过 Selector 主循环线程集成多种事件( I/O 事件、信号事件、定时事件等),实际的业务处理逻辑是交由服务编排层中相关的 Handler 完成。核心组件包括:EventLoopGroup、EventLoop。
服务编排层的职责是负责组装各类服务,它是 Netty 的核心处理链,用以实现网络事件的动态编排和有序传播。核心组件包括:ChannelPipeline、ChannelHandler、ChannelHandlerContext。
Netty 源码结构
Core 核心层模块:netty-common 模块、netty-buffer 模块、netty-resover 模块。
Protocol Support 协议支持层模块:netty-codec 模块、netty-handler 模块。
Transport Service 传输服务层模块:netty-transport 模块。
版权声明: 本文为 InfoQ 作者【风翱】的原创文章。
原文链接:【http://xie.infoq.cn/article/eed3a1d54ebd59056f7286fca】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论