- $ rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]
-
- -p Vhost: 可选参数,针对指定vhost下的queue进行设置
- Name: policy的名称
- Pattern: queue的匹配模式(正则表达式)
- Definition: 镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
- ha-mode: 指明镜像队列的模式,有效值为 all/exactly/nodes
- all: 表示在集群中所有的节点上进行镜像
- exactly: 表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
- nodes: 表示在指定的节点上进行镜像,节点名称通过ha-params指定
- ha-params: ha-mode模式需要用到的参数
- ha-sync-mode: 进行队列中消息的同步方式,有效值为automatic和manual
- priority: 可选参数,policy的优先级
- 以下示例声明名为ha-all的策略,它与名称以”ha”开头的队列相匹配,并将镜像配置到集群中的所有节点:
- rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
- 策略的名称以”two”开始的队列镜像到群集中的任意两个节点,并进行自动同步:
-
- $ rabbitmqctl set_policy ha-two "^two." '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
- 以”node”开头的队列镜像到集群中的特定节点的策略:
- rabbitmqctl set_policy ha-nodes "^nodes." '{"ha-mode":"nodes","ha-params":["rabbit@nodeA", "rabbit@nodeB"]}'