架构剖析

架构剖析

1 逻辑架构

1.1 Reactor通信调度层

该层主要责任就是监听网络的读写和连接操作,负责将网络层的数据读取到内存缓存区,然后触发各种网络事件,将这些事件发送到PipeLine中进行后续操作。
Reactor线程NioEventLoop及其父类
NioSocketChannel/NioServerSocketChannel及其父类
ByteBuffer及其衍生类等

1.2 责任链ChannelPipeline

负责事件在责任链中的有序传播,同时负责动态的编排责任链。

1.3 业务逻辑Service ChannelHandler

  1. 纯粹的业务编排
  2. 其他应用层协议插件

2 架构质量属性

2.1 高性能

架构的性能模型合理与否对性能的影响最大。

2.1.1 非阻塞IO
2.1.2 直接缓存
2.1.3 ByteBuf Pool
2.1.4 灵活的IO TCP参数
2.1.5 无锁并发编程
2.1.6 安全容器、原子类
2.1.7 关键资源串行化
2.1.8 引用计数

2.2 可靠性

2.2.1 链路有效性检测(心跳)
2.2.1.1 读空闲超时机制
2.2.1.2 写空闲超时机制
2.2.2 内存保护
2.2.2.1 ByteBuf引用计数
2.2.2.2 ByteBuf Pool
2.2.2.3 内存容量上限
2.2.2.4 解码保护
2.2.3 优雅停机
2.2.3.1 EventExecutorGroup
2.2.3.2 Channel
2.2.3.3 Unsafe
2.2.3.4 ChannelPipleline
2.2.3.5 ChannelHandler

2.3 可定制型

2.3.1 责任链模型
2.3.2 基于接口开发
2.3.3 大量工厂类
2.3.4 大量系统参数
wenxinzizhu wechat
扫一扫,添加我的微信,一起交流共同成长(备注为技术学习)