脚本编排引擎

我要开发同款
永不止步20232023年08月28日
224阅读
开发技术java
所属分类vue、faas、serveless、springboot

作品详情

由于公司公有云平台的微服务数量非常庞大且迭代更新非常频繁,新的业务需求又不断涌现,且大部分接口逻辑简单,只是简单的数据透传和格式转换等,经常为了字段的改动而重新发布整个微服务,阿里aone平台的发布审核流程又极其冗长,整个流程经常需要一周时间。因此,决定开发一个完全自研的可以支持业务快速更新上线的脚本编排引擎系统。
本人完成了脚本编排引擎的服务端部分开发工作,功能包括分组管理、模块管理、lpi接口管理、参数管理、自定义类管理、数据表管理、zk节点管理、脚本导出导入等,另外开发了schedule定时任务运行模型、调用alioth数据埋点sdk、python脚本执行引擎、接入各个中间件(okhttp,dubbo泛化,mysql多数据源,mongodb、elasticsearch、mq等)等工具类。
前端框架为nodejs/vue。
后端框架为springboot+springmvc+mybatis,用到的相关组件有zookeeper client,oss sdk,dubbo泛化实现类,okhttp,elasticsearch,durid连接池,quartz定时任务,mq工具,fastjson序列化等。
脚本引擎使用groovy引擎ScriptEngine,直接运行在jvm容器之上,提供给开发者大量的中间件供groovy脚本调用。
组/模块/lpi数据保存在数据库中,lpi以及groovy脚本的调用相关meta元数据保存在zk节点上,具体的脚本代码存放在阿里云oss上。
所有lpi通过引擎暴露一个dubbo接口给斑马网关,开发者配置网关接口后,通过泛化方式将配置的参数传入泛化接口进行调用,车极端使用网关sdk进行对应接口调用。
调用流程为:车机端-slb-斑马网关-longclaw lpi接口-groovy脚本-各类中间件。
项目拆分给3个部署单元:脚本引擎核心服务、定时任务调度服务、控制台后端服务,都运行在k8s容器中,目前pod数10+,qps2000+。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论