欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

RabbitMQ-镜像队列配置的介绍

程序员文章站 2022-04-02 11:39:14
...

本篇文章给大家带来的内容是关于RabbitMQ-镜像队列配置的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

设置policy方法

RabbitMQ-镜像队列配置的介绍

例如我们将满足规则“*_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规则)。

rabbitmq文档说明:

RabbitMQ-镜像队列配置的介绍

镜像队列的同步机制

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

tips:一个队列正在同步的时候,改队列的所有操作都会阻塞,因为各种原因可能会阻塞几分钟、几小时甚至几天。(所以队列同步需谨慎)

以上就是RabbitMQ-镜像队列配置的介绍的详细内容,更多请关注其它相关文章!

相关标签: rabbitmq php