cisco sitemigration

我要开发同款
xiasummer2023年02月10日
122阅读
所属分类SpringCloudspringboot

作品详情

cisco sitemigration的项目,如果有一批sites需要migraion,就会在平台上制定一个migration Plan,确定需要搬迁的站点的source和target端,以及migration date.导入需要migration的站点信息.当这个计划被approved以后,就会根据项目的工作流来执行flow对整个site的大文件,DB以及小文件搬迁工作,当所有类型数据(全量以及增量)全部搬到target端,标志着一个migration动作全部完成,项目采用前后端分离,用nginx反向代理,前端采用Vue+ElementUI,后端采用Springboot,MyBatis,Quarz 集群,以及Eureka,GateWay这些SpringCloud的微服务框架,由于项目有很多dataCenter涉及到不同类型如oracle以及postgresql以及不同domain的数据源切换,通过实现AbstractRoutingDataSource用于多数据源的切换,migration需要根据工作流来完成,项目实现了一套完整的工作流,并且有一个Coordinate来根据不同流程编排task,下发给不同worker去执行,实现异步收集执行状态。每个worker的service又集成了quarz job的jar包,可以方便的启动各种类型的quarz job,并且通过反射找到需要执行job的方法,quarz job集群又可去争抢任务去完成job.并且每个job中的工作可以通过多线程去完成,这样大大提高了worker的工作性能,文件搬迁实现Apache sshd来操作服务器上的文件,pentaho-kettle ETL工具和shareplex 产品来实现db搬迁工作,这些都可以很好得提高项目的性能,并且大量使用代理,抽象工厂,以及反射技术来实现解耦使项目及其灵活,同时也使用了cisco其他团队的产品,如Ci安全验证以及CMC类似项目配置中心,以及disApi数据库连接信息注册平台,项目可拓展性非常强大,可以根据migration站点任务量来增加减少workerService在一个集群中部署的数量,并且配置参数也非常灵活.
本人参与了项目的框架搭建和改进,表结构设计和讨论,数据准备阶段以及公共模块以及核心代码的编写,另外也参与了项目前端页面的开发,主要运用的技术栈为spring cloud,spring boot, quartz,多线程,nginx,kafka,mybatis, vue.js+elementUI
难点主要是多数据源的切换,任务编排调度,事务以及重试
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论