当前位置: 首页 > java >正文

RabbitMQ-镜像队列(Mirrored Queues)

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

图片

中间件,我给它的定义就是为了实现某系业务功能依赖的软件,包括如下部分:

Web服务器

代理服务器

ZooKeeper

Kafka

RabbitMQ(本章节)

上个小节我们介绍了RabbitMQ伪集群模式,虽然元数据是同步共享的,但是数据只存在某一台节点,当这个节点宕机以后,整个集群也就出现问题,所以本小节我们介绍一个新的正在的高可用方案:镜像队列(Mirrored Queues)。

宕机之前队列里面有不少数据,如下图。

图片

下图就是宕机以后的队列信息,全部都显示离线。

图片

镜像队列(Mirrored Queues)

下面的配置基于刚才的伪集群,注意这个高可用模式是针对虚拟主机级别配置。

./sbin/rabbitmqctl set_policy ha-all "^" '{"ha-mode": "exactly","ha-params": 3,"ha-sync-mode": "automatic","queue-master-locator": "min-masters"
}' --priority 10 --apply-to queues

上面的配置是就是设置默认的虚拟主机"/":

规则名字:ha-all。

针对队列:^ 代表所有队列。

镜像模式:静态指定(还有是所有节点都有镜像和指定节点有影响)。

镜像数量:3 (一主2个镜像)。

同步模式:自动同步,新节点加入时候会同步历史数据。

选主策略:节点宕机以后选举策略(最少master节点)。

策略优先级:10数值越高优先级越高,范围 0-99。

针对对象:队列,其他本身就高可用。

如果要设置其他虚拟主机或者查看其他虚拟主机则可以使用 -p xxx。

[root@rabbitmq01 rabbitmq_server-3.8.35]# ./sbin/rabbitmqctl list_policies
Listing policies for vhost "/" ...
vhost	name	pattern	apply-to	definition	priority
/	ha-all	^	queues	{"ha-mode":"exactly","ha-params":3,"ha-sync-mode":"automatic","queue-master-locator":"min-masters"}	10

这个时候,我们查看当前的镜像节点不同的队列就有不同的队列。​​​​​​​

[root@rabbitmq01 rabbitmq_server-3.8.35]# ./sbin/rabbitmqctl list_queues name messages synchronised_slave_pids
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name	messages	synchronised_slave_pids
test06	0	[<rabbit@rabbitmq02.1749892590.4412.1>, <rabbit@rabbitmq03.1749894297.1354.1>]
test07	0	[<rabbit@rabbitmq02.1749892590.4435.1>, <rabbit@rabbitmq03.1749894297.1392.1>]
test04	0	[<rabbit@rabbitmq03.1749894297.1344.1>, <rabbit@rabbitmq02.1749892590.4462.1>]
test02	1391	[<rabbit@rabbitmq02.1749892590.4429.1>, <rabbit@rabbitmq03.1749894297.1368.1>]
test05	0	[<rabbit@rabbitmq02.1749892590.4432.1>, <rabbit@rabbitmq03.1749894297.1389.1>]

离线一个节点还可以正常生产消息和消息消息。

图片

这样就可以实现集群的高可用。

http://www.xdnf.cn/news/16882.html

相关文章:

  • VMware 下 Ubuntu 操作系统下载与安装指南
  • RAGFLOW~knowledge graph
  • Redis的ZipList、SkipList和ListPack之间的区别
  • 【Linux】重生之从零开始学习运维之Mysql
  • Au速成班-多轨编辑流程
  • STM32学习记录--Day5
  • 《C++》STL--list容器详解
  • EasyExcel 公式计算大全
  • 谷歌Firebase动态链接将失效:如何选择深度链接替代方案?
  • 11.Layout-Pinia优化重复请求
  • 51单片机入门:模块化编程
  • 利用 AI 在 iPhone 上实现 App 文本情绪价值评估(下)
  • 【string类常见接口】
  • 智能Agent场景实战指南 Day 28:Agent成本控制与商业模式
  • C语言(02)——标准库函数大全(持续更新)
  • Spring Boot + MongoDB:从零开始手动配置 MongoConfig 实战
  • C语言:冒泡排序
  • 【3】交互式图表制作及应用方法
  • kafka快速部署、集成、调优
  • 香港正式启动稳定币牌照制度!推动中国的人民币国际化?
  • 智能Agent场景实战指南 Day 29:Agent市场趋势与前沿技术
  • ALOcc: Adaptive Lifting-based 3D Semantic Occupancy and
  • 异步函数被调用多次,多次处理同一个文件导致占用,如何让异步函数按顺序执行?
  • 【Node.js安装注意事项】-安装路径不能有空格
  • RustFS:高性能文件存储与部署解决方案(MinIO替代方案)
  • 10.Linux 用户和组的管理
  • 【智能协同云图库】第七期:基于AI调用阿里云百炼大模型,实现AI图片编辑功能
  • Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
  • webpack面试题及详细答案80题(41-60)
  • 【科研绘图系列】R语言绘制环状分组显著性柱状堆积图