记阿里云经典网络迁移至专有网络的过程

前言

为了减轻对数据库的运维压力,将自建的mysql数据库转为RDS数据库。

迁移环境

  1. 阿里云RDS——专有网络
  2. 阿里云ECS——经典网络(应用服务器)
  3. 阿里云ECS——经典网络(DB服务器)
  4. 咨询过阿里云,我们ECS经典网络不支持直接从经典网络迁移到专有网络,需购买新的服务器。

相关IP以及应用网络配置

IP	服务器类别	类别	外网IP
10.10.3.10	应用服务器	应用服务器-A	183.44.79.28
10.10.3.11	自建mysql	自建数据库-B	*
172.10.10.11	阿里云RDS	RDS-C	*
172.10.10.12	(新购)阿里云ECS-应用服务器	新购VPS服务器-D	183.44.79.27

我们需要将应用从A迁移到D;将数据库从B迁移到D

迁移步骤

1.先在服务器D中搭建好相关的应用运行环境———APR-Tomcat、JDK、Nginx

2.使用阿里云提供的ClassicLink将经典网络与专有网络互通。也就是上面的四台服务器都能相互ping通,目的是让D服务器能链接上B的数据库。

3.将应用从A服务器中复制到D服务器中去,启动D中的应用,观察应用是否能正常启动。

4.在D服务器中的应用能正常启动后,需修改A的Nginx配置,配置一份代理,类型是backup,目的是在A应用stop后,此backup会将请求转发到D服务器的应用中去。

5.停止A服务的应用,观察A中的Nginx是否能将请求都转发到D的应用中去。如果正常,则说明我们应用已成功迁移到D服务器中。

6.最后修改域名指向的外网IP,将183.44.79.28修改为183.44.79.27。因CDN有缓存,故修改后,从域名进来的请求并不会立刻请求到183.44.79.27的IP上,还需保留A服务器的Nginx应用正常服务一到两天。目的是为了保持所有请求都会转发到D服务器中。

到此,我们已经迁移好了应用了。但是数据库这块还需要迁移。

7.为了能正常快速迁移,我们并没有使用阿里云提供的自建Mysql迁移到RDS上的工具。

此处需要提一下我们的业务:天猫的充值业务;整个过程比较简单,将天猫请求的数据,保存至数据库后,再发送充值到充值系统,然后等待充值系统的结果通知,根据结果业务闭环

8.最初的想法是在D中启动多一份应用,但是此引用链接的是RDS数据库;在天猫请求过来的充值数据用新的线程post一份至此应用中。但是仔细想了一下,这样会硬气引起自建数据库与RDS自增主键不一致的问题。如果天猫同时推送3笔充值数据过来,那么就有可能订单A的主键ID在自建mysql是10001,而在RDS的自增主键却有可能是10002

9.最后的方法是在订单请求充值后,查询一次订单,然后将订单的信息post到新的应用(连接到RDS),在此post的接口处理的逻辑仅仅是将数据插入到数据库中(此处用了Nutz Dao简单而方便)。

10.然后在接收通知结果的接口中,直接将接收到的数据,启用新的线程post一份至连接到RDS应用中。

这样我们就能将从此刻起的数据,在自建数据库同步至RDS数据库

11.观察一段时间的订单,对比订单的数据,如果没有差异,则说明上述的步骤是支持我们的逻辑,而且对天猫来说是透明,不需要停机就能完成迁移了。

转载于:https://my.oschina.net/u/1863616/blog/1575337

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值