消息队列 RabbitMQ版支持开源 RabbitMQ 的镜像队列机制,相比普通队列而言,具备更高的可靠性和可用性。本文档介绍通过 RabbitMQ 实例的 Web UI 页面,将普通队列设置为镜像队列的操作步骤。
通常情况下,普通队列及其内容仅存储在单个节点中,一个节点失效会导致对应的队列不可用。消息队列 RabbitMQ版支持开源 RabbitMQ 的镜像队列机制,镜像队列允许集群将队列镜像到其他代理节点上,当集群中的某一代理节点宕机后,队列可以自动切换到镜像中的其他代理中。
关于 RabbitMQ Web UI 的详细说明,请参考 RabbitMQ 官网。
在节点重启时,RabbitMQ 镜像队列会同步全量数据。同步期间,会消耗大量内存,容易触发内存高水位 ,从而阻止生产者写入消息。如果出现镜像队列堆积大于 1GB 情况,会极大地影响集群的性能和稳定性,建议关注使用姿势。
登录消息队列 RabbitMQ版实例的 Web UI。
在顶部菜单栏,单击 Admin。
(可选)创建 vhost。
如果您需要指定 vhost,请执行本步骤;如果不需要,请直接执行步骤4。
在右侧导航栏中选择Policies,为vhost设置规则。
参数 | 说明 | |
---|---|---|
Name | 规则的名称。 | |
Pattern | 队列的匹配模式,正则表达式格式。 | |
Definition | 镜像定义,包括ha-sync-mode、ha-mode和ha-params。 | |
ha-sync-mode | 镜像队列中消息的同步方式,支持设置为:
| |
ha-mode | 指明镜像队列的模式,支持设置为:
| |
ha-params | ha-mode模式的相关参数。 | |
Priority | 规则的优先级。可选参数。 |
单击Add / update policy。
规则添加成功后,结果如下图所示。