最近刚刚完成一次服务迁移的工作,本人刚刚从离职同事的手中接手两个新的工程,立即要执行这么大的变动,对我也是巨大的挑战,现对迁移过程和碰到到问题进行记录。
因为业务的需要,需要将2台服务器上的服务迁移到新的2台服务上,主要需求如下:
- 服务器A1,A2是要迁移的源服务器。服务器B1,B2是要迁移的目标服务器。
- 服务器A1,A2上部署两个服务:lss和confService。这两个服务是java工程,以war包的形式部署在tomcat中使用jdk6启动。lss服务同时部署中A1和A2,在A1在部署ngnix,为A1和A2做负载,但是因为只部署1台ngnix所有也有单点的问题; confService只在A1上部署一台服务,也存在单点的问题。所有在迁移后,需要为这两个服务配置高可用。
- 服务迁移过程,同时使用现有的公共服务(如esl服务、话单服务、mysql数据库、redis等)
- 在服务的迁移过程中不能影响线上业务
整个服务架构图如下:
上图分析,原服务框内是我们已有的服务,新服务框内是我们迁移后的服务。当前服务调用的箭头看灰色箭头。完成服务迁移后,服务调用查看绿色箭头。在迁移中间过程中,新旧服务同时存在。
和之前相关的同事讨论梳理业务,服务的大概流通已经清楚。但是因为服务已经运行比较久再加上之前的开发者离职。服务的细节已经没有人知道,需要自己读代码进行理解。以下是操作的整个流程
第一步