2020-08-29

Netty原理基本介绍

pipleline原理图

基本介绍

图一为ChannelPipleline的处理流程图。可以看出netty通过socket收发数据,用户在创建netty Channel实例的时候,需要将数据处理逻辑的Handler设置到channel的pipeline中。socket读取数据后channel会按照pipeline中的handler如Handler1 -> Handler2 -> ...  HandlerM顺序依次处理。发送数据是channel会按照相反的顺序HandlerM -> .. -> Handler2 -> Handler1处理数据。在处理的过程当中如果pipeline中的Handler与收发数据的处理的类型不符合,则跳过,如发送数据是发现为InboundHandler这跳过本次逻辑,下面以读取数据为例,对netty如何跳过的源码进行分析:

DefaultChannelPipeline Construct方法图

上图为DefaultChannelPipeline的初始化方法,tail,head pipeline的头指针、未指针。


TailText数据读取

上图为TailText类的数据读取方法,在数据读取前会寻找下一个OutboundHandlerContext,OutbountHandlerContext为OutboundHandler的上下文

HeadText获取下一个Handler
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容