更新时间:2025-05-06 GMT+08:00

中间件层迁移实施

  • Redis迁移

    Redis服务一般分为两种大的场景:缓存和数据库存储。在缓存时,一般不用进行迁移数据,大多数场景都是重新在华为云SQL数据库中重新缓存。一般迁移数据都是针对的Redis作为数据库存储使用的场景,其中在web场景下的缓存session时,也可以不用迁移,当客户端重新登录时会在华为云DCS中再一次存储。

  • 离线备份导入

    备份文件导入方式当前支持迁移到Redis3.0、Redis4.0和Redis5.0;暂时不支持导入自建Redis5.0生成的rdb备份文件。无论是IDC自建Redis,还是第三方云Redis服务,只要能进行导出备份文件(AOF或RDB),就可以使用DCS迁移服务的备份文件导入方式进行迁移。此种迁移方式属于全量迁移方式,在迁移过程中产生的新增数据无法进行迁移。

    源端容量大于10G的情况下,该迁移方式的迁移效率会大大折扣,故当源端内存使用量大于10G的情况下,不建议使用该迁移方案。

    图1 Redis离线迁移方案
  • 迁移过程如下:
    1. 源Redis数据备份导出:
      • IDC:使用第三方工具或配置策略将备份数据落盘(方法见Redis-cli或Redis-port);
      • 使用备份功能将rdb文件输出到S3中。
    2. 备份数据上传至OBS:
      • EC2:使用OBS Browser/obsutil工具将备份文件(aof/rdb)上传至DCS所在的Region的OBS。
      • S3:创建OMS任务,将S3中的rdb备份文件迁移传输到DCS所在的Region的OBS。
    3. 创建DCS迁移任务:
      • 在DCS服务中的数据迁移模块创建迁移任务,选择备份文件导入方式,并选择OBS中源端的aof/rdb备份文件,填写其余选项,启动迁移任务。
    4. DCS数据查询对比两端数据
      • 使用redis查询命令:info keyspace
  • 在线迁移

    在线迁移不光可以迁移全量数据,还可以实时同步迁移过程中的增量数据,但是这种迁移方法,需要源端与华为云目标端之间内网互通,而且源端Redis未禁用SYNC和PSYNC命令。

    图2 Redis在线迁移方案

    迁移过程如下:

    1. 创建DCS迁移任务:

    在DCS服务中的数据迁移模块创建迁移任务,选择在线迁移方式,根据需要选择去全量迁移或全量迁移+增量迁移方法,填写其余选项,启动迁移任务。

    1. DCS数据查询对比两端数据

    迁移任务完成后,使用redis查询命令:info keyspace

  • 消息中间件迁移

    消息中间件,包含Kafka、RabbitMQ、RocketMQ、IBMMQ等,消息中间件在迁移项目中,通常使用策略切换的方案来进行迁移。

    图3 消息中间件迁移方案

    迁移步骤如下:

    1. 中断企业应用和生产消息的相关业务,直到消费组中的消息消费完毕
    2. 待消息消费完毕,停止消费相关业务
    3. 启动华为云的生产消息和消费消息的业务,接入客户流量,观察业务是否正常