rabbitmq 集群间的数据迁移
场景,业务需要将集群A迁移到集群B
迁移的包括元数据(RabbitMQ用户、vhost、队列、交换和绑定)和消息数据,而消息数据存储在单独的消息存储库中。
第一步,将元数据前备份并迁移到新集群
1、操作
元数据迁移,登录 UI 管理界面,默认为 ip:15672, 选择 Export definitions,download 元数据信息 json文件,然后在新的集群上选择 Import definitions,upload 上传元数据信息(注意队列可能在不同节点的情况)
2、登陆服务A导出元数据
3、登陆服务B导入上面导出的元数据
4、验证数据
刷新页面,查看元数据 等信息是否存在
第二步,将集群A中有些queue的消息迁移到集群B
1、采用rabbitmq 的 Shovel 插件,启用插件
登录rabbitmq服务器执行 rabbitmq-plugins enable rabbitmq_shovel & rabbitmq-plugins enable rabbitmq_shovel_management,可能要重启,开启后打开UI查看;
2、配置插件
登陆UI -> admin -> Shovel Management -> Add a new shovel
配置 数据源 & 数据目标
注:这里的适用于我们平台的 url 格式为 amqp://user:password@server-name/my-vhost
connect to server-name, with credentials and overridden virtual host
例如 amqp://rmq:rmq123@172.16.123.111:5672
第三步,验证消息迁移到了集群B