持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
netty之基础概念
前文
netty是一个非常常用的网络通信框架,由于其基于nio的通信特性,使得具备非常高的网络通信性能。本文内容则是在使用netty搭建服务过程中,一些netty相关的基础概念。文章内容主要为笔记,难免有不准确之处。
netty基础概念
- ServerBootstrap 主要为netty服务的启动引导器,负责netty服务启动时的引导操作。netty的一切配置都是基于该引导器进行,例如对于线程组的设置、对于服务通道的设置、对于连接信息的配置、消息处理类以及端口绑定等等若干内容,都会通过该引导器进行引导设置。
- EventLoopGroup 这是netty通过利用nio的关键。引导器会设置两个组,分别作为nio的选择器,以及实际处理业务数据的线程组。两个线程组通过引导器进行指定,组成了实际的数据处理体系。而每个group中又会有多个EventLoop,每个eventLoop实际上需要对于连接的通道进行绑定,通道则是在连接发生时同时建立的。
- channel 这是对于连接实际的处理通道,当每个连接建立时,会同时生成一个通道。通道会被绑定到上面的EventLoop上,而断开时则对应着通道关闭。当客户端与服务器进行数据的通信时,会采用通道进行消息处理,通道也就可以认为是消息传输的管道。
- ChannelHandler和ChannelPipeline ChannelHandler是通道实际处理消息的方法,而ChannelPipeline则是对于消息处理流程的指定。例如我们可以通过pipeline执行消息处理时的编码器、解码器、实际的处理消息类、消息聚合器等等。而ChannelHandler则是实际处理消息的逻辑,主要会封装一些收到消息时的响应,例如当连接建立时的处理、当收到消息时的处理、当发生异常时的处理等等,可以根据实际的需要进行消息处理方法的指定。
- ChannelFuture 这是netty异步处理的基础,通过定义实现消息真正的异步处理,同时可以添加监听得到异步处理的结果。
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。