netty处理器链架构图及其总结

资料

netty处理器链初始化源码分析文章
netty处理器链读数据执行流程源码分析文章
LineBasedFrameDecoder解决粘包半包源码分析文章
netty粘包半包问题常见解决方案及总结文章
netty处理器链架构图及其总结文章

处理器作用

1.处理器作用是用来处理IO事件的

2.处理IO事件会遇到不同的问题,所以设计为了责任链的模式,有点分层的概念,多个处理器同时工作用于解决不同问题问题,粘包半包用一个处理器,然后将完整包给到下一个处理器,新的处理器用来解决反序列化处理业务的

3.责任链只是个单向链表的结构,由于用读写事件,顺序相反的操作,所以处理器链其实是双向的,底层设计为一个双向链表

4.图一是读事件的处理器流向详情,图二是读写事件的一个简图总览

读事件处理器链架构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ILJn4hNM-1601053760726)(/Users/wuxinxin/Library/Application Support/typora-user-images/image-20200926004604421.png)]

处理器链总架构图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ousJb3s5-1601053760730)(/Users/wuxinxin/Library/Application Support/typora-user-images/image-20200926010326283.png)]

总结

1.处理器链用于处理IO事件,使用了典型的责任链+策略模式,使得处理器链既可以横向扩展,也可以纵向扩展

2.横向扩展表现在一个处理器可以有不同实现,满足同一个功能的处理器。比如解码器

3.纵向扩展表现为处理器是可以无限增加,使得每个处理器有单一职责的设计原则,分层概念。比如 解码处理器和反序列化处理器的关系

猜你喜欢

转载自blog.csdn.net/weixin_38312719/article/details/108807010