RabbitMQ-镜像队列配置相关

设置policy方法

clipboard.png

例如咱们将知足规则“*_mirrored_queue”的队列设置为镜像队列
./rabbitmqctl set_policy -p wenda-action mirrored_queue_policy_all ".*_mirrored_queue" '{"ha-mode":"all"}'
以后申请的全部知足“*_mirrored_queue”规则的队列都是镜像队列测试

tips:经过测试代表,使用policy的正则规则,能够设置镜像队列。若是没有设置policy,在申明队列的时候(queue_declare方法)使用x-ha-policy这个参数设置的镜像队列是无效的。设置了policy正则规则,不使用x-ha-policy参数,只要知足正则规则的queue也会自动变成镜像队列,(许多博客上是说明了用队列的x-ha-policy参数来设置镜像队列,却没有指明须要提早建立好policy规则)。spa

rabbitmq文档说明:rabbitmq

clipboard.png

镜像队列的同步机制

当一个队列申明为镜像队列以后,而且ha-mode:all,集群中全部的节点都会有该队列的镜像,当队列已经有一些数据以后,往集群中加入一个新节点,新节点加入集群以后会自动建立该队列的镜像,可是队列以前是有数据的,这些数据是立马同步到新节点仍是手动同步,这时候须要镜像队列的同步机制
queue_declare()方法中arg参数中有该配置:
ha-sync-mode manual 手动同步 | automatic 自动同步队列

tips:一个队列正在同步的时候,改队列的全部操做都会阻塞,由于各类缘由可能会阻塞几分钟、几小时甚至几天。(因此队列同步需谨慎)ip

相关文章
相关标签/搜索