netty介绍

前言:netty作为高性能网络框架我们再熟悉不过,底层基于jdk的NIO进行深入的封装,市面上几乎所有需要进行网络通信的框架都离不开它,如dubbo、spring cloud等。

netty之所以被广泛使用,一是它的高性能,完善jdk中NIO的性能瓶颈,二是它是一个网络框架,内部进行完善的封装,有非常完善的api接口,用户不再需要关心网络通信底层,着重于自身的业务。

但正由于它的易用,底层进行大量的封装 导致阅读源码起来着实困难,接下来通过对netty各个组件的讲解让我们对netty框架有更好的了解。

netty架构组成

 

组件解释

BossGroup:用来处理连接的工作组

WorkGroup:完成连接后,用户处理后续的工作如 读写

NioEventGroup:暂时把它当做一个事件组,里面由多个NioEventLoop组成

NioEventLoop:netty中非常核心的组件,用来处理我们后续的io事件

Pipeline:顾名思义管道,里面由多个channelhandler组成,结构上相当于一个双向列表,每一次io操作都会在Pipeline形成有序的入站出站操作,暂时先这样理解,后续会有完整的解释

ChannelHandler:类似于springmvc的filter,对io事件依次有序的向后或向前进行传递

还有一些重要的组件后续分析源码遇到再进行说明

流程:客户端发起一次请求,服务端先会通过BossGroup中的NioEventGroup进行accpet操作,BossGroup默认只有一个NioEventLoop,建立连接后,会生成一个NioSocketChannel注册到WorkGroup,WorkGroup会选择一个NioEventLoop进行注册后续的read和write操作都在WorkGroup中

对netty的介绍我们先到此为止,接下来我会通过对netty各个流程分析逐渐深入底层

 

posted @ 2020-12-23 10:39  努力工作的小码农  阅读(337)  评论(0编辑  收藏  举报