更新时间:2023-11-08 GMT+08:00

RabbitMQ业务迁移

应用场景

RabbitMQ业务迁移是指将线下单机或集群实例迁移到华为云RabbitMQ实例。

方案架构

方案如下:不迁移数据,先切换生产,再切换消费。

实施步骤

针对线下单机或集群实例,在不迁移数据的情况下,首先将消息生产切换到线上实例,不再生产消息到线下实例,消费方同时消费线下以及线上实例。当线下实例消息全部消费完后,将消息消费切换到线上实例,完成整个迁移过程。

  • 该方案无法保障消息消费的有序性。
  • 确保客户端与线上实例可连通。

通过以下方法,确认线下实例是否消费完成:

  • 在RabbitMQ WebUI页面查看,如图1所示。

    Overview视图中,可消费消息数(Ready)以及未确认的消息数(Unacked)都为0时,说明消费完成。

    图1 RabbitMQ WebUI
  • 调用API查看。
    curl -s -u username:password -XGET http://ip:port/api/overview

    参数说明:

    • username:线下实例登录RabbitMQ WebUI的账号
    • password:线下实例登录RabbitMQ WebUI的密码
    • ip:线下实例登录RabbitMQ WebUI的IP地址
    • port:线下实例登录RabbitMQ WebUI的端口号

    回显信息中“messages_ready”和“messages_unacknowledged”都为0时,说明消费完成。

    图2 回显信息