普通集群: RabbitMQ集群是由多个broker节点构成的,那么从服务的整体可用性上来讲,该集群对于单点失效是有弹性的,但是同时也需要注意:尽管exchange和binding能够在单点失效问题上幸免于难,但是queue和其上持有的message却不行,这是因为queue及其内容仅仅存储于单个节点之上,所以一个节点的失效表现为其对应的queue不可用。
镜像队列:解决普通集群中queue不同步,实现集群中一个节点挂掉依旧可用
rabbitmq镜像队列功能需要开启rabbitmq策略实现,需要基于rabbitmq策略来实现,政策是用来控制和修改群集范围的某个vhost队列行为和Exchange行为,在cluster中任意节点启用策略,策略会自动同步到集群节点。
参考链接:https://www.cnblogs.com/xinxiucan/p/8041446.html
命令行操作:
rabbitmqctl set_policy ha-all "^queue" '{"ha-mode":"all"}'
web界面操作: