rabbitmq-迁移方案
rabbitmq共有两种迁移方案:
迁移方式 | 优点 | 缺点 | 可用性 | 原理 |
文件导入方式 | 数据100%成功 | 业务要修改地址 暂停提供服务 | 可以使用 | 拷贝元数据方式 |
添加集群方式 | 不可用,数据会丢失(添加机器之前会清空之前所有的信息) | |||
Shovel 方式 | 数据100%成功 | 业务要修改连接地址 | 可以使用 | 类似于转发功能,client--单机群--多集群,单集群没有数据,都落在多集群上,配置好策略就可以 |
1 文件导入方式
2 服务器加入集群方式
7.1 文件导入方式
7.1.1先从需要被迁移的机器上导出需要的文件,最下面可以选择划分的虚拟机
7.1.2选择导入的服务页面,选择备份文件,选择虚拟主机,虚拟机主机事先要创建好
7.1.3 出现如下页面说明已成功
7.1.4 设置镜像策略
7.1.5 验证数据是否为镜像集群模式
我们可以看到队列一个主节点,两个镜像节点,说明数据会有三份
7.2 加入集群方式
7.2.1 需要先暂停单机服务器,备份/var/lib/rabbitmq/.erlang.cookie 文件。
7.2.2 从node1 机器上拷贝 .erlang.cookie 文件 到单机机器的/var/lib/rabbitmq/ 目录下
7.2.3 单机机器执行如下命令
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app
7.2.4 查看是否加入
没有加入之前
加入之后
查看队列是否存在,这种方式数据是不存在的
7.3 Shovel 方式
7.3.1 在需要迁移的机器上分别安装shovel 插件
rabbitmq-plugins enable rabbitmq_shovel
rabbitmq-plugins enable rabbitmq_shovel_management
我需要从单机机器迁移到集群服务器
首先登陆到单机机器web页面会看到已安装插件
7.3.2 配置shovel 迁移任务
7.3.3 新增成功页面
检查状态
注:shovel是针对queue(队列)来操作的,有多少个队列要迁移数据,就要创建多少个对应的shovel。
7.3.4 验证
hovel创建好后,如果检查状态正常的话,它会自动进行迁移数据。现在我们来检查旧集群shovel_demo_queue队列的数据是否移到到新集群中。
在新集群中通过以下界面查看,而且数据都是镜像模式
在旧集群中通过以下界面查看