c++ 插件框架

一、插件化框架目标

高可用插件架构的目标(是什么样子,具备什么样的能力)

1、微内核+插件架构,稳定的内核,易扩展的插件

2、热插拔,灵活的插件配置,升级更新量小

3、接口编程,模块解耦,低耦合高内聚

4、稳定性,错误和异常处理恢复,健康状态监测

5、简单易用,搭建成本低

6、支持单元测试,可调试

 

给业务带来的好处(目的)

1、更加灵活的业务功能配置

2、升级更新灵活,支持功能级的升级。不在需要跟版发版。

3、提高开发效率,丰富强大组件库,调试方便,模块解耦独立开发

4、提高稳定性,程序高内聚、低耦合,支持单元测试、支持运行状态监控、错误上报、多进程隔离、快速定位问题

 

二、插件需要设计的东西

插件API和插件管理器

c++ 插件框架_第1张图片

架构图

 

 

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)、打包

支持神盾打包工具

 

未完待续

你可能感兴趣的:(C++基础)