实践丨 RabbitMQ 通过 shovel 插件迁移数据

阅读数:51 2019 年 10 月 23 日 10:11

实践丨RabbitMQ通过shovel插件迁移数据

生产环境中会遇到 RabbitMQ 数据迁移的场景,例如:切换云服务厂商、不同 Region 之间数据迁移、新搭建 RabbitMQ 实例,数据需要同步至新的 RabbitMQ 实例。

前提条件:
源 RabbitMQ 实例打开了 shovel 插件。
目的 RabbitMQ 实例打开了 shovel 插件。
源实例与目的实例能够网络互通。

当前以华为云不同 Region 下 RabbitMQ 实例数据迁移为例子。已在华为云北京 Region、上海 Region 各创建一个集群实例。现在需要将上海 Region 的数据迁移至北京 Region。

操作步骤

1 上海 Region、北京 Region 实例都打开 Shovel 插件。上海 Region 的实例有 3 个队列,且每个队列中有 10000 条数据:

实践丨RabbitMQ通过shovel插件迁移数据

2 上海 Region、北京 Region 实例都绑定好公网 ip。

3 在北京 Region 新申请一台单机实例,绑定好公网 ip,打开 Shovel 插件,用作数据中转。

4 登录单机实例的管理控制台,Admin -> Shovel Management。

实践丨RabbitMQ通过shovel插件迁移数据

5 配置 Shovel

实践丨RabbitMQ通过shovel插件迁移数据

6 配置完成后如下图:

实践丨RabbitMQ通过shovel插件迁移数据

7 通过 Shovel Status 可以看 Shovel 的状态

实践丨RabbitMQ通过shovel插件迁移数据

8 此时上海 Region 的 RabbitMQ 实例中的队列数据已经为 0,而北京 Region 的 RabbitMQ 实例中的队列数据为 10000 条,可以看到数据已经完整迁移过来了。

实践丨RabbitMQ通过shovel插件迁移数据

上海

实践丨RabbitMQ通过shovel插件迁移数据

上海

9 此时再向上海 Region 的队列生产数据,数据也会被实时同步至北京。

实践丨RabbitMQ通过shovel插件迁移数据

同步中:上海

实践丨RabbitMQ通过shovel插件迁移数据

同步中:北京

实践丨RabbitMQ通过shovel插件迁移数据

同步完成后:上海

实践丨RabbitMQ通过shovel插件迁移数据

同步完成后:北京

本文转载自公众号中间件小哥(ID:huawei_kevin)。

原文链接:

https://mp.weixin.qq.com/s/-4yKs1Cw5AMwigSVvlNUxA

评论

发布