详解 Netty
下面我们来看 Netty 相关的知识点,如下图所示。
特点
如上图左侧所示,首先了解 Netty 的特点。
-
Netty 是一个高性能的异步事件驱动的 NIO 框架,它对消息的处理采用串行无锁化设计,提供了对 TCP、UDP 和文件传输的支持。
-
Netty 内置了多种 encoder 和 decoder 实现来解决 TCP 粘包问题。
-
Netty 处理消息时使用了池化的缓冲池 ByteBufs,提高性能。
-
结合内存零 copy 机制,减少了对象的创建,降低了 GC 的压力。
主要概念
需要掌握 Netty 中的一些对象概念,比如将 Socket 封装成 Channel 对象,在 Channel 读写消息时,使用 ChannelHandler 对消息进行处理,一组 Handler 顺序链接组成 ChannelPipeline 的责任链模式。一个 Channel 产生的所有事件交给一个单线程的 EventLoop 事件处理器来进