这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战
前言
Netty作为异步事件驱动的网络,高性能之处主要来自于其I/O模型和线程处理模型,前者决定如何收发数据,后者决定如何处理数据。前面了解了一下Netty相关的基础知识,我们从Netty整体架构设计去了解一下,Netty的功能设计初衷。
我们主要从Netty功能特性、模块组件、运作过程来了解Netty的架构设计
功能特性
- 传输服务 支持BIO和NIO
- 容器集成 支持OSGI、JBossMC、Spring、Guice容器
- 协议支持 HTTP、Protobuf、二进制、文本、WebSocket等一系列常见协议都支持。 还支持通过实行编码解码逻辑来实现自定义协议
- Core核心 可扩展事件模型、通用通信API、支持零拷贝的ByteBuf缓冲对象
模块组件
这边就不介绍了后面梳理源码的时候在介绍。
工作基本原理
介绍服务端Netty的工作架构图:
1. 服务端
1 | java复制代码public static void main(String[] args) throws Exception { |
2. 客户端
1 | java复制代码public static void main(String[] args) throws Exception { |
本文转载自: 掘金