rabbitmq-迁移方案

小丫2年前技术文章2302

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

相关文章

hbase迁移目录说明

路径(1.0.0)路径(0.94)是否迁移说明/hbase/WALs/hbase/.logs否被HLog实例管理的WAL文件。 ### /hbase/WALs/data-hbase.com,60020...

pod内无法访问slb的监听

pod内无法访问slb的监听

问题背景在A账号下的k8s集群中有个nginx 应用,需要去访问B账号下内网slb代理的一个服务。B账号下的slb有多条监听,测试发现只有个别监听可以telnet通,其余监听telnet均不通。可能是...

ranger对接hbase

ranger对接hbase

前提:本文是基于集群中已经部署了ranger组件和hbase组件的情况下,增加ranger对hbase组件的对接。安装部署1、ranger-hbase插件安装使用ranger2.3版本对接插件。将插件...

Prometheus+Consul服务自动发现监控

Prometheus+Consul服务自动发现监控

为什么使用consulprometheus作为新一代的监控利器,有很多优点,部署起来也十分方便。部署prometheus后自然会需要使用prometheus去监控物理机或者虚拟机的资源,这里就需要使用...

MySQL优化器特性(八)索引范围扫描成本计算

MySQL优化器特性(八)索引范围扫描成本计算

range执行计划中的range表示索引范围扫描。索引范围扫描的执行过程大致如下:1、根据where条件中索引字段的条件,定位到索引结构中的第一条满足条件的记录。2、根据索引中记录的rowid,到表中...

MySQL运维实战之ProxySQL(9.3)使用ProxySQL实现读写分离

proxysql读写分离主要通过mysql_query_rules表中的规则来实现。下面是具体的配置步骤:hostgroup配置insert into mysql_servers&...

发表评论    

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