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

队列迁移

在RabbitMQ集群上,队列在各个节点分布不均衡会导致部分节点压力过大,无法更有效的利用集群。这可能是扩容节点、删除队列等原因导致的。

设置队列负载均衡的方法如下:

删除队列重建

  1. 登录RabbitMQ WebUI页面
  2. 在“Overview”页签中,单击“Download broker definitions”,导出元数据。

  3. 停止生产,等待数据消费完,然后删除原有队列。

    1. 在“Overview”页签中,确认数据是否已消费完。

      可消费消息数(Ready)和未确认的消息数(Unacked)都为0时,说明消费完成。

    2. 等数据消费完后,删除原有队列。
      1. 在“Queues”页签,单击需要删除的队列名称,进入队列详情页面。

      2. 单击“Delete Queue”,删除队列。

  4. 在“Overview”页签中,上传已导出的元数据。

    1. 在“Overview”页签中,单击“选择文件”,选择已导出的元数据。
    2. 单击“Upload broker definitions”,上传元数据。

      上传成功后,显示如下信息。

      实例会自动将队列均衡创建在各个节点上,在“Queues”页签中查看队列分布详情。

通过Policy修改master节点方式

  1. 登录RabbitMQ WebUI页面
  2. 在“Admin > Policies”页面中,新增一条策略。

    • Name:填写策略名称。
    • Pattern:队列匹配模式,填写队列名称,会匹配前缀同名的队列。
    • Apply to:选择“Queues”。
    • Priority:可选参数,策略优先级,数字越大,优先级越高。
    • Definition:镜像定义。填写“ha-mode”和“ha-params”参数。其中“ha-mode”设置为“nodes”,“ha-params”设置为队列希望迁移到的目的节点名称。

  3. 单击“Add policy”。

    • 队列数据同步需要很长时间,为防止消息丢失,在队列数据完成同步前,原先的master节点依然生效。
    • 待队列切换完成后,可删除2中新增的策略。

分享:

    相关文档

    相关产品