Netty里面的几大组件
在学习Netty的过程中, 个人理解如下:
在Netty中有很多重要的组件, 每个组件职业不同, 担负不同的功能, 共同完成’大业’.
组件一 NioEventLoop
在它的底层封装了Selector, 实现多路复用, 由唯一绑定的一个线程去进行三大步骤循环操作: 监听事件,处理事件,执行任务
组件二 NioServerSocketChannel NioSocketChannel
一个是服务端通道, 一个是客户端通道. 接收客户端连接和处理数据读写都是通过通道进行的.
组件三 ChannelPipeline
每个Channel都与唯一的一个Pipeline关联. 当Channel读取到数据以后,后续的具体操作都交给管道Pipeline去进行
组件四 Handler
在ChannelPipeline中可以放入用户自定义的Handler,用于具体的业务处理, 这里面也包括解码器和编码器这两种重要的Handler.
当然以上四个是最重要的组件, 比较重要的组件或类还包括以下一些:
启动类ServerBootstrap
负责底层数据的读写类Unsafe
具体的线程类FastThreadLocalThread
线程池NioEventLoopGroup
存放数据的容器ByteBuf
学习这些组件先不要深入细节, 先有个大概的概念, 每个组件具体做啥, 然后把它们串联起来, 加深对Netty整体架构的理解.
然后再回过来深入到每个组件的细节, 反作用加深理解整个架构.