深入Netty通讯框架知识
Common
common
项目,该项目是一个通用的工具类项目,几乎被所有的其它项目依赖使用,它提供了一些数据类型处理工具类,并发编程以及多线程的扩展,计数器等等通用的工具类。
buffer
buffer
项目,该项目下是 Netty 自行实现的一个 Byte Buffer 字节缓冲区。该包的实现相对于 JDK 自带的 ByteBuffer 有很多优点:无论是 API 的功能,使用体验,性能都要更加优秀。它提供了**一系列( 多种 )**的抽象定义以及实现,以满足不同场景下的需要。
transport
该项是核心项目,实现了 Netty 架构图中 Transport Services、Universal Communication API 和 Extensible Event Model 等多部分内容。
transport
项目,该项目是网络传输通道的抽象和实现。它定义通信的统一通信 API ,统一了 JDK 的 OIO、NIO ( 不包括 AIO )等多种编程接口。
另外,它提供了多个子项目,实现不同的传输类型。例如:transport-native-epoll
、transport-native-kqueue
、transport-rxtx
、transport-udt
和 transport-sctp
等等。
codec
该项目实现了Netty 架构图中的 Protocol Support 。
codec
项目,该项目是协议编解码的抽象与部分实现:JSON、Google Protocol、Base64、XML 等等。
另外,它提供了多个子项目,实现不同协议的编解码。例如:codec-dns
、codec-haproxy
、codec-http
、codec-http2
、codec-mqtt
、codec-redis
、codec-memcached
、codec-smtp
、codec-socks
、codec-stomp
、codec-xml
等等。
handler
handler
项目,该项目是提供内置的连接通道处理器( ChannelHandler )实现类。例如:SSL 处理器、日志处理器等等。
另外,它提供了一个子项目 handler-proxy
,实现对 HTTP、Socks 4、Socks 5 的代理转发。
example
example
项目,该项目是提供各种 Netty 使用示例。