rabbitmq集群-镜像模式
创始人
2024-05-30 22:08:09

上文参考: rabbitmq集群-普通模式

1. 什么是镜像模式

它和普通集群最大的区别在于 Queue 数据和原数据不再是单独存储在一台机器上,而是同时存储在多台机器上。也就是说每个 RabbitMQ 实例都有一份镜像数据(副本数据)。每次写入消息的时候都会自动把数据同步到多台实例上去,这样一旦其中一台机器发生故障,其他机器还有一份副本数据可以继续提供服务,也就实现了高可用。

在这里插入图片描述

2 配置镜像队列

所谓的镜像集群模式并不需要额外搭建,只需要我们将队列配置为镜像队列即可。

这个配置可以通过网页配置,也可以通过命令行配置,我们分别来看。

2.1 网页配置

配置页面,我们可以通过配置页面配置不同的policy
在这里插入图片描述
各参数含义如下:

  • Name: policy 的名称。

  • Pattern: queue 的匹配模式(正则表达式)。

  • Definition:镜像定义,主要有三个参数:ha-mode, ha-params, ha-sync-mode。

    • ha-mode:指明镜像队列的模式,有效值为 all、exactly、nodes。其中 all 表示在集群中所有的节点上进行镜像(默认即此);exactly 表示在指定个数的节点上进行镜像,节点的个数由 ha-params 指定;nodes 表示在指定的节点上进行镜像,节点名称通过 ha-params 指定。
    • ha-params:ha-mode 模式需要用到的参数。
    • ha-sync-mode:进行队列中消息的同步方式,有效值为 automatic 和 manual。
    • priority 为可选参数,表示 policy 的优先级。

add结束,我们可以在其他的ui管理界面比如http://localhost:15674/#/policies看到同步的policy

2.2 测试配置

配置结束后,我们做个测试,测试参考rabbitmq集群-普通模式中的3.2 基于3.1,停机publish发布的节点-rabbit1,其他节点会丢失该节点信息 在做测试,我们发现节点rabbit2,rabbit3依然存在(截图没有截rabbit3的)
在这里插入图片描述

我们停止了rabbit1节点
在这里插入图片描述
启动consumer,message被消费了一次
在这里插入图片描述

2.3 命令行配置

命令行的配置格式如下:

rabbitmqctl set_policy [-p vhost] [--priority priority] [--apply-to apply-to] {name} {pattern} {definition}

举一个简单的配置案例

rabbitmqctl set_policy -p / --apply-to queues my_queue_mirror "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

3 rabbitmq的集群和单体

在高并发下,集群当然是更好的选择,如果数据量很大的话,比如处理数据达到了几千万甚至上亿,集群也很被推荐,但是,集群并不意味着就是比单体更好的,我们都知道,集群也有如下缺点

  1. 增加了运维的成本
  2. 对于单个mq来说,集群是增加了时间成本,而不是降低了,因为message数据管理更加复杂了

参考 Using RabbitMQ in Cluster

Sending 100k messages to the single instance took about 10 seconds, while sending them to the first instance from cluster took about 54 seconds. There is also a huge difference in processing messages on the receiver side. Receiving messages from single standalone queue took about 43 seconds while receiving then from the clustered HA queue took about 132 seconds.

所以,是否集群也是看业务需求。

相关内容

热门资讯

春节给家里选电视还是换投影一文... 【ZOL原创技术】春节的脚步越来越近,家家户户都在忙着焕新家居、筹备团圆,而客厅作为全家欢聚的核心场...
台股开红盘在即,ETF规模翻倍... 经济观察网 截至2026年2月19日,台湾基金与股票市场近期值得关注的事件集中于台股长假后开红盘、E...
联合国强烈谴责以色列在约旦河西... 来源:央视新闻客户端当地时间2月18日,联合国巴勒斯坦人民行使不可剥夺权利委员会主席团发表声明,强烈...
2026年第一季度四大通信手机... 【ZOL中关村在线原创导购】进入2026年第一季度,手机行业的通信技术迎来了新一轮的升级突破,卫星通...
AMD Zen 6架构APU将... 【ZOL中关村在线原创新闻】近日,AMD 在提交给 LLVM 编译器的驱动代码中,披露了即将应用于Z...