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

RabbitMQ如何实现高可用

程序员文章站 2022-03-07 16:17:42
...

RabbitMQ一共具有三种模式:单机、普通集群、镜像集群

单机模式

单机模式,就是我们平常玩的demo,生产上肯定不能用。具体安装部署过程可以参考我的这篇文章:CentsOS原生RabbitMQ安装过程

普通集群

普通集群就是在多台机器上启动多个实例。每个队列只会存在其中的一个实例上,然后所有实例同步这些队列的元数据。消费者在进行消费的时候,如果连接的实例上恰好不是队列所在的实例,就会根据队列的元数据去队列所在实例上拉取数据

由此可知,集群模式并没做到分布式,如果队列所在的实例宕机了,会导致接下来其他实例就无法从那个实例拉取消息

所以集群主要是提高吞吐量的

关于集群模式的安装部署过程可以参考我的这篇文章:RabbitMQ集群安装

镜像集群

跟普通集群模式不一样的是,在镜像集群模式下,无论队列中的元数据还是消息都会存在于多个实例上,就是说,每个 RabbitMQ 节点都有这个 队列的一个完整镜像。然后每次写消息到队列的时候,都会自动把消息同步到多个实例上

如何开启镜像集群

首先镜像集群是在普通集群的基础上的,所以你要先搭建一个普通集群,然后在随意一个实例上执行如下命令创建一个策略即可开启
rabbitmqctl set_policy -p vhostName name “^xxqueue” '{“ha-mode”:“all”}'
name是策略的名字

xxqueue是需要匹配的队列名称,如果要匹配所有的话使用^

推荐阅读

  1. SpringCloud学习系列汇总
  2. 为什么一线大厂面试必问redis,有啥好问的?
  3. 多线程面试必备基础知识汇总
  4. Java集合源码分析汇总-JDK1.8
  5. Linux常用命令速查-汇总篇
  6. JVM系列文章汇总
  7. MySQL系列文章汇总
  8. RabbitMQ系列文章汇总

博客所有文章首发于公众号《Java学习录》转载请保留
扫码关注公众号即可领取2000GJava学习资源

RabbitMQ如何实现高可用
            
    
    博客分类: RabbitMQ RabbitMQ 

相关标签: RabbitMQ