rabbitmq-迁移方案

小丫1年前技术文章1710

rabbitmq共有两种迁移方案:

迁移方式

优点

缺点

可用性

原理

文件导入方式

数据100%成功

业务要修改地址

暂停提供服务

可以使用

拷贝元数据方式

添加集群方式



不可用,数据会丢失(添加机器之前会清空之前所有的信息)


Shovel 方式

数据100%成功

业务要修改连接地址

可以使用

类似于转发功能,client--单机群--多集群,单集群没有数据,都落在多集群上,配置好策略就可以

1 文件导入方式

2 服务器加入集群方式

7.1 文件导入方式

   7.1.1先从需要被迁移的机器上导出需要的文件,最下面可以选择划分的虚拟机

image.png

  7.1.2选择导入的服务页面,选择备份文件,选择虚拟主机,虚拟机主机事先要创建好

image.png

  7.1.3 出现如下页面说明已成功

image.png


  7.1.4 设置镜像策略
  
  image.png

  7.1.5  验证数据是否为镜像集群模式
   我们可以看到队列一个主节点,两个镜像节点,说明数据会有三份

image.png

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 查看是否加入

   没有加入之前

image.png


  加入之后

image.png

 查看队列是否存在,这种方式数据是不存在的

image.png


7.3 Shovel 方式 

7.3.1 在需要迁移的机器上分别安装shovel 插件

rabbitmq-plugins enable rabbitmq_shovel

rabbitmq-plugins enable rabbitmq_shovel_management
我需要从单机机器迁移到集群服务器
首先登陆到单机机器web页面会看到已安装插件

image.png

7.3.2 配置shovel 迁移任务

image.png

7.3.3 新增成功页面

image.png

检查状态

image.png

注:shovel是针对queue(队列)来操作的,有多少个队列要迁移数据,就要创建多少个对应的shovel。

7.3.4 验证

hovel创建好后,如果检查状态正常的话,它会自动进行迁移数据。现在我们来检查旧集群shovel_demo_queue队列的数据是否移到到新集群中。

在新集群中通过以下界面查看,而且数据都是镜像模式

image.png


在旧集群中通过以下界面查看

image.png

相关文章

SLS日志采集 

SLS日志采集 

创建Pjoject创建日志库接入日志新建机器组数据接入Logtail配置--添加Logtail配置选择需要的日志文本格式按下列步骤完成即可编辑日志格式配置查询分析数据...

EM部署HBASE

EM部署HBASE

先获取HBASE包,放在em节点中,在HBASE包所在的服务器上执行,127.0.0.1指向的是em服务器的ip。# {package_name}表示为具体的tar包名称 curl http://1...

ES运维(七)添加sql插件

ES运维(七)添加sql插件

一、概述ElasticSearch安装SQL插件下载地址(中国大佬开发)二、集成sql插件1、下载es-sql插件下载地址: https://github.com/NLPchina/elastics...

SQL隐式转换导致索引失效_校验规则不一致

4.校验规则不一致导致索引失效首先可以通过检查表的校验规则核实是否存在隐式转化。--查看关联字段的字符集、校验规则SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAM...

开启kerberos配置HiveServer2负载均衡

开启kerberos配置HiveServer2负载均衡

1.HAProxy配置HiveServer2负载均衡1.编辑/etc/haproxy/haproxy.cfg文件,在文件末尾增加如下配置listen stats     bind 0.0.0.0:1...

docker日志切割

docker日志切割

如果在docker部署前期没有规划好,例如:没有提前配置容器日志切割,那么在后期容器日志就会越来越大,当想要通过日志查看相关报错等信息的时候就会比较麻烦。配置docker日志切割在/etc/docke...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。