Netty里面的几大组件

在学习Netty的过程中, 个人理解如下:
在Netty中有很多重要的组件, 每个组件职业不同, 担负不同的功能, 共同完成’大业’.

组件一 NioEventLoop

在它的底层封装了Selector, 实现多路复用, 由唯一绑定的一个线程去进行三大步骤循环操作: 监听事件,处理事件,执行任务

组件二 NioServerSocketChannel NioSocketChannel

一个是服务端通道, 一个是客户端通道. 接收客户端连接和处理数据读写都是通过通道进行的.

组件三 ChannelPipeline

每个Channel都与唯一的一个Pipeline关联. 当Channel读取到数据以后,后续的具体操作都交给管道Pipeline去进行

组件四 Handler

在ChannelPipeline中可以放入用户自定义的Handler,用于具体的业务处理, 这里面也包括解码器和编码器这两种重要的Handler.

当然以上四个是最重要的组件, 比较重要的组件或类还包括以下一些:

启动类ServerBootstrap

负责底层数据的读写类Unsafe

具体的线程类FastThreadLocalThread

线程池NioEventLoopGroup

存放数据的容器ByteBuf

学习这些组件先不要深入细节, 先有个大概的概念, 每个组件具体做啥, 然后把它们串联起来, 加深对Netty整体架构的理解.
然后再回过来深入到每个组件的细节, 反作用加深理解整个架构.

image.png

猜你喜欢

转载自www.cnblogs.com/hxsh/p/11833262.html