zoukankan      html  css  js  c++  java
  • RabbitMQ——使用Shovel插件迁移队列数据

     

     转载https://www.cnblogs.com/caoweixiong/p/14775268.html

    前言

    公司的RabbitMQ集群要升级最新稳定版本,升级方案:新搭建一套集群,将数据迁移到新的集群,应用连接到新的集群。

    因为系统可以接受短暂停机时间,所以采用Shovel插件将旧集群的数据迁移到新集群。经过分析,需要迁移的数据主要有两种:

    • 队列中积压的消息;
    • 延迟队列的消息;

    安装插件

    • 启动插件

    新集群中的每一台服务器上,执行以下命令启动shovel插件:

    rabbitmq-plugins enable rabbitmq_shovel
    rabbitmq-plugins enable rabbitmq_shovel_management
    • 验证插件

    进入管理界面的Admin页签下面,检查是否有如下2个菜单,如有说明启动成功。

    配置

    以下操作,通过rabbitMQ的管理界面进行操作。

    • 创建exchange&queue(旧集群)

    1、创建交换器exchange:

    Name:shovel_demo_exchange
    Arguments:x-delayed-type:direct

    2、 创建队列queue:

    Name:shovel_demo_queue

     3、绑定路由bind:

    To queue:shovel_demo_queue
    Routing Key:shovel_demo_queue_routingKey

    如上图所示,输入刚才创建的shovel_demo_exchange,按回车过滤查询,然后点击列表中的名称链接,进入下图的详细界面:

    • 创建exchange&queue(新集群)

    创建方法及名称跟旧集群一模一样,全部名称和配置都要一样。

    • 旧集群中发送消息

    1、进入发送界面:

    2、输入信息发送:

    3、发送完成提示:

    4、重复上面的操作,再发送2条消息,总共有3条消息。

    5、查看积压的消息:

    迁移数据

    • 新集群创建shovel连接

    1、打开新集群的管理界面,进入Admin页签,点击Shovel Management菜单,按以下方式增加一个shovel:

    queue:shovel_demo_queue
    URI格式:amqp://user:password@server-name/my-vhost
    Source URI:amqp://zat:zat123@10.0.101.5/zat          #旧集群URI,IP要改
    Destination URI:amqp://zat:zat123@10.0.104.5/zat    #U集群URI,IP要改

    2、新增成功界面:

    3、检查状态是否正常:

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

    验证

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

    1、在新集群中通过以下界面查看:

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

    引用:

    • https://www.rabbitmq.com/shovel.html
    • https://www.rabbitmq.com/shovel-dynamic.html
  • 相关阅读:
    python数字
    Python数据类型
    Python表达式与运算符
    正则表达式
    计划任务
    nfs服务
    nginx反向代理+负载均衡
    samba安装测试
    自定义centos7 yum仓库
    token过期时间
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15513556.html
Copyright © 2011-2022 走看看