更新时间:2023-11-08 GMT+08:00
队列迁移
在RabbitMQ集群上,队列在各个节点分布不均衡会导致部分节点压力过大,无法更有效的利用集群。这可能是扩容节点、删除队列等原因导致的。
设置队列负载均衡的方法如下:
删除队列重建
- 登录RabbitMQ WebUI页面。
- 在“Overview”页签中,单击“Download broker definitions”,导出元数据。
- 停止生产,等待数据消费完,然后删除原有队列。
- 在“Overview”页签中,上传已导出的元数据。
通过Policy修改master节点方式
- 登录RabbitMQ WebUI页面。
- 在“Admin > Policies”页面中,新增一条策略。
- Name:填写策略名称。
- Pattern:队列匹配模式,填写队列名称,会匹配前缀同名的队列。
- Apply to:选择“Queues”。
- Priority:可选参数,策略优先级,数字越大,优先级越高。
- Definition:镜像定义。填写“ha-mode”和“ha-params”参数。其中“ha-mode”设置为“nodes”,“ha-params”设置为队列希望迁移到的目的节点名称。
- 单击“Add policy”。
- 队列数据同步需要很长时间,为防止消息丢失,在队列数据完成同步前,原先的master节点依然生效。
- 待队列切换完成后,可删除2中新增的策略。