核心组件
Netty 功能非常强大,依赖于其团队对其高度抽象化和模块化,封装出各个组件,开发者只需要调用对应的组件便可以轻松构造出高性能服务。
通常编写最简单高效的服务一般会涉及到如下组件:
- Channel、EventLoop、ChannelFuture:socket 管理、控制流、多线程、并发;
- ChannelHandler、ChannelPipeline:管理数据流和数据处理;
- ByteBuf:高效简单的数据读写缓存,数据读写容器;
- Encode、Decode:一套编解码框架;
- Bootstrap:配置服务参数,引导服务启动;
Channel、EventLoop、ChannelFuture
Channel :底层是 socket,负责基本的 I/O 操作:bind、connect、read、write。Channel 提供的 API 操作大大降低了 直接使用 socket 的复杂性。Channel 具有多个实现类:EmbeddedChannel、LocalServerChannel、NioSocketChannel。
EventLoop: 为 channel 操作分配线程,用于处理连接的生命周期所发生的事件。
ChannelFuture:channel 操作为异步,每个操作不能马上得到结果,ChannelFutur 用于注册监听器,以便在每个操作完成后收到通知。
<