回答
Bootstrap
、ServerBootstrap
:引导类,用于配置整个 Netty 程序,串联各个组件,将这些组件串连为一个可运行的完整的程序。Bootstrap
用于客户端,ServerBootstrap
用于服务端。Channel
:通道。Netty 网络通信的核心组件,它代表了一个打开的连接。当客户端与服务端建立连接后,服务端会为客户端新建一个代表它的 Channel。EventLoop
:事件循环。是 Netty Reactor 线程模型的核心处理引擎,负责处理Channel
的 I/O 操作。当服务端为某个客户端新建Channel
后,为将Channel
与一个EventLoop
进行绑定,在这个Channel
的生命周期内,它的所有事件和任务都由与之绑定的EventLoop
执行。注意,EventLoop
是一个单线程执行器,这样可以避免线程安全的问题。ChannelHandler
:处理器,Netty 处理业务的核心逻辑所在,用于处理入站和出站事件。ChannelPipeline
:Netty 的核心处理链,用于实现网络事件的动态编排和有序传播。它的主要作用是管理和执行ChannelHandler
,确保它们按照正确的顺序和方式进行事件处理。ByteBuf
:数据缓冲区,Netty 的数据容器。
Java NIO 中有一个 Channel 了,为什么 Netty 还重新设计一个?
Netty 中的 ByteBuf 是什么,它和 Java NIO 的 ByteBuffer 有什么区别?
EventloopGroup 和 EventLoop了解么?他们两者的关系是什么?
NioEventLoopGroup 默认的构造函数会起多少线程?