之前已经对netty的有了基本的了解(https://blog.csdn.net/shehuinibingge/article/details/113365868)
接下来再来了解下netty的组件和设计
1.Channel接口
基本的I/O操作(bind(), connect(),read()和write()等等。Channel接口提供的API大量简化了我们直接使用Socket嘞的复杂度。
2.EventLoop接口
EventLoop定义了netty的核心抽象,用于处理连接生命周期内发生的所有事件。
这些关系是:
- 一个EventLoopGroup可以包含多个EventLoop
- 一个EventLoop在一个生命周期内只能和一个Tread绑定
- 所有EventLoop处理的I/O事件都是它绑定的那个Tread处理
- 一个Channel在它的生命周期内只能注册一个EventLoop
- 一个EventLoop是可以分配给多个Channel的
3.ChannelFuture接口
正如你所了解的,netty中所有的I/O操作都是异步的,原因得以于channelFuture接口,我们只需要在addListener()方法上注册一个ChannelFutureListener,用来在操作完成时得到通知,并做相应处理