多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 平台简介 * 2017年做`crm`系统时,提出***模型+元数据*** 概念,实际落地得到基于业务建模的数据结构。 * 2018年系统更名为`om`(运维管理定位),在模型引擎基础上,加入服务接入模块,能快速构建新的服务以及代理第三方服务。 * 2019年接触到网关概念,基于`openresty+lua`实现网关(`ebus`)并接管权限认证和用户登陆等功能。`om`系统加入应用和微服务模块,基本实现基于应用的服务接入、发布、订阅、调用的统一流量入口式服务网关。 * 2020年系统更名为`CSP`(定位服务提供+运维管理)。引入插件式开发机制,实现应用插件化热部署。原来网关重构为`java`版本(加密库工具库支持较好)。(迭代中......) 到目前为止,平台框架图大致如下: ![](https://img.kancloud.cn/a8/c4/a8c4ccf9887c8df7228861eee30a8a9a_889x462.png) ## 组件描述 * 网关`gateway`:`ebus`重构的`java`版本,增强前端应用线上代理等功能。 * 注册中心`registry`:定时轮询数据库插件配置信息到zk,对外提供相关`dubbo`接口,文件服务接口提供。 * 容器`container`:集成插件化,为插件运行加载各种扩展能力。监听`zk`,自动完成插件装卸载。 * 插件`plugin`:针对不同业务实现插件,比如`csp-plugin-agentservice`,`csp-plugin-admin` 等等。 * 技术选型:`springboot + zookeeper + dubbo + redis + kafka + springboot-plugin-framework + vue + curator + oracle/mysql` * 工作年限:5-6年经验(2020-2021年) # 项目收获 ## 视野收获 1. 从业务平台视角切换到通用基础平台视角,能将业务中的公用的部分抽象提炼抽成基础组件。 > 将业务定时任务抽成定时任务子系统。 > 将业务系统中历史不变的数据做归档操作形成业务归档系统。 > 基于发布订阅模式,实现数据生成,订阅主动推送形成数据分发子系统。 2. 从平台部署角度,更加熟悉按业务分库,业务主键分表,基于`dubbo`微服务做分布式部署。 3. 从网关`nginx`层,熟悉代理前端`vue`资源,和反向代理后端`api`。 4. 引入`插件化`机制,实现基于插件的`热插拔`。 ## 技术提升 1. 熟悉`openresty + lua`的`nginx`开发。 2. 熟悉基于`curator`的`zookeeper`编程,实现分布式协调。 3. 熟悉`springboot plugin framework`的插件化编程,实现不同的业务插件。 4. 熟悉`lombok`的`@Data`,`@Slf4j`等注解。(编译操作`AST`) 5. 熟悉`nginx`的`vue`资源代理,后端负载均衡和反向代理等基础使用。 6. 熟悉`kafka`的基础编程,包括`@KafkaListener`和`api`方式实现消费者的批量消费。