RabbitMQ的镜像队列

镜像队列

如果 RabbitMQ 集群中只有一个 Broker 节点,那么该节点的失效将导致整体服务的临时性不可用,并且也可能会导致消息的丢失。可以将所有消息都设置为持久化,并且对应队列的durable 属性也设置为 true ,但是这样仍然无法避免由于缓存导致的问题:因为消息在发送之后和被写入磁盘井执行刷盘动作之间存在一个短暂却会产生问题的时间窗。通过 publisherconfirm 机制能够确保客户端知道哪些消息己经存入磁盘,尽管如此,一般不希望遇到因单点故障导致的服务不可用。引入镜像队列(Mirror Queue)的机制,可以将队列镜像到集群中的其他 Broker 节点之上,如果集群中的一个节点失效了,队列能自动地切换到镜像中的另一个节点上以保证服务的可用性。

启动三台集群节点

节点添加 policy

随便找一个节点添加 policy

队列存在镜像队列

在 node1 上创建一个队列发送一条消息,队列存在镜像队列

停掉 node1

停掉 node1 之后发现 node2 成为镜像队列.
就算整个集群只剩下一台机器了 依然能消费队列里面的消息说明队列里面的消息被镜像队列传递到相应机器里面了

相关推荐
代码漫谈38 分钟前
深入RabbitMQ腹地:核心概念、底层原理与生产级实践
分布式·消息队列·rabbitmq
QC班长6 小时前
Maven公司私库配置踩坑点
java·服务器·maven·intellij-idea
Makoto_Kimur6 小时前
java开发面试-AI Coding速成
java·开发语言
wuqingshun3141596 小时前
说说mybatis的缓存机制
java·缓存·mybatis
空中海7 小时前
Kubernetes 生产实践、可观测性与扩展入门
java·贪心算法·kubernetes
Devin~Y7 小时前
大厂Java面试实录:Spring Boot/Cloud、Kafka、Redis、K8s 与 Spring AI(RAG/Agent)三轮连环问
java·spring boot·redis·mysql·spring cloud·kafka·kubernetes
bLEd RING7 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
小松加哲8 小时前
Spring MVC 核心原理全解析
java·spring·mvc
Ulyanov8 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊8 小时前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享