写点什么

Netty 整体架构学习笔记

用户头像
风翱
关注
发布于: 2021 年 05 月 14 日

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 模块。


发布于: 2021 年 05 月 14 日阅读数: 33
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
Netty整体架构学习笔记