2. netty 宏观理解 - mrwang1992/netty_student GitHub Wiki
Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.
netty 异步事件驱动的网络框架
异步:相对于同步有所不同,如 SpringMVC是同步的调用业务完成后再返回给客户端,异步执行回调完成与否是不一定的,通过监听器来监听事件是否完成
事件驱动 : 一个事务会有各种阶段 开发者可以定义各个阶段的回调方法并注册到各个阶段当中被事件触发
设计
-
可维护的 服务端与客户端的开发
-
非阻塞的 NIO 框架
-
快速轻松的 网络服务的客户端与服务端开发
-
SEDA (Straged Event Driven Architecture) 阶段性事件驱动
-
一个请求切分为多个阶段,每个阶段分多个线程进行处理
-
阶段与阶段使用异步的形式进行沟通驱动
-
真正的无连接数据报支持
性能
-
更好的吞吐量
-
低延迟
-
尽可能的减少数据拷贝,使用了系统0拷贝
-
提供安全套接字支持 (SSL/TLS and StartTLS)
下载
- 用4.x的,5.x是个意外 废弃了
- 3.x 是jboss 包开始的 4.x 是io.netty
源码
架构图
支持的协议
- protobuf
- RTSP 协议(网络控制协议)
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
- 流媒体协议
- ...
Core
- 可扩展的事件模型
- 统一的通信API
- zero-copy-capable rich byte buffer (0拷贝)