一、插件化框架目标
高可用插件架构的目标(是什么样子,具备什么样的能力)
1、微内核+插件架构,稳定的内核,易扩展的插件
2、热插拔,灵活的插件配置,升级更新量小
3、接口编程,模块解耦,低耦合高内聚
4、稳定性,错误和异常处理恢复,健康状态监测
5、简单易用,搭建成本低
6、支持单元测试,可调试
给业务带来的好处(目的)
1、更加灵活的业务功能配置
2、升级更新灵活,支持功能级的升级。不在需要跟版发版。
3、提高开发效率,丰富强大组件库,调试方便,模块解耦独立开发
4、提高稳定性,程序高内聚、低耦合,支持单元测试、支持运行状态监控、错误上报、多进程隔离、快速定位问题
二、插件需要设计的东西
插件API和插件管理器
架构图
1、核心设施
1)、微内核,插件管理器,插件工厂
插件管理器
1、配置;
2、插件加载;
4、插件的生命周期管理;
5、插件的管理和维护;
6、插件的组装;
7、插件框架提供总是、按需、自动管理三种方式载入插件
2)、插件接口,插件分类,系统插件+功能插件
通用的插件接口
1、创建
2、初始化
3、激活
4、开始
5、停止
6、销毁
3)、插件交互
1、事件总线
2、返回接口
2、配套设施
1)、框架层组件库,日志等
Utils、log
2)、插件测试,单元测试、集成测试、性能测试
接入单元测试框架
3)、资源监控,监测对资源(内存,套接字,文件句柄等)的使用情况
monitor, 提供状态查询。每个业务插件提供通过的序列号转换。
4)、异常处理,异常恢复、错误上报
错误处理流程
5)、提供消息和日志的追踪功能
1、日志和埋点
6)、版本控制升级,全量升级,功能升级
1、支持单独的插件升级
3、开发&部署
1)、工程管理,makefile
CMake , 采用vs开发 ,qt
2)、动态库管理,自动化脚本
动态库管理,多人开发
3)、打包
支持神盾打包工具
未完待续