`

RabbitMQ如何实现高可用

阅读更多

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学习资源

1

0
0
分享到:
评论

相关推荐

    RabbitMQ实现Android消息推送.zip

    基于SpringBoot、RabbitMQ的Android消息推送平台搭建。亲测可用。有的公司对所要推送的消息保密要求比较高,不希望被第三方看到,可以使用此种方式...如果所要推送的人群比较多,可以搭建RabbitMQ集群解决高并发问题。

    基于ansible一键离线部署rabbitmq+haproxy高可用镜像模式容器版分布式集群工具

    2、支持 1台主机一键远程部署rabbitmq+haproxy高可用镜像模式集群+(1个磁盘节点+2个内存节点+1个haproxy节点)。 3、支持 2台或3台主机一键远程部署rabbitmq+haproxy高可用镜像模式集群(1个磁盘节点+1个内存节点+1...

    基于docker-compose一键离线部署haproxy+rabbitmq3.9.16高可用镜像集群工具

    2、支持单机haproxy+rabbitmq高可用镜像集群部署 3、支持多机haproxy+rabbitmq高可用分布式镜像集群部署 4、支持数据目录、日志目录、插件目录、配置文件持久化 5、支持数据目录、日志目录、端口、账号、密码、内存...

    RabbitMq实例以及安装包

    毋庸置疑,RabbitMQ 最高,原因是它的实现语言是天生具备高并发高可用的erlang 语言。 5.比较关注的比较, RabbitMQ 和 Kafka RabbitMq 比Kafka 成熟,在可用性上,稳定性上,可靠性上, RabbitMq 胜于 Kafka ...

    基于SpringBoot2+RabbitMQ实现分布式事务解决方案.zip

    基于SpringBoot2+RabbitMQ实现分布式事务解决方案.zip 关于RabbitMQ实现分布式事务解决方案 框架整合:SpringBoot2+MyBatis+RabbitMQ 需要两个MySQL节点以及至少一个可用的RabbitMQ节点

    MQ选型之RabbitMQ

    目前流程的消息队列主要有:ActivityMQ/kafka/redis/rabbitmq等。...4.高并发(原因是它的实现语言是天生具备高并发高可用的erlang 语言);5.RabbitMq 比Kafka 成熟,在可用性上,稳定性上,可靠性上

    Rabbitmq+HAproxy+Keepalived实现高可用加负载均衡-附件资源

    Rabbitmq+HAproxy+Keepalived实现高可用加负载均衡-附件资源

    使用Java编写的RabbitMQ连接池方法

    RabbitMQ客户连接池的Java实现。我们刚开始也是采用这种方式来实现的,但做压力测试时,发现这种每次新建Connection和新建Channel是非常耗时的,在大并发下,一般都要8毫秒左右,慢的话,好多都是几十毫秒。因此我们...

    rabbitmq-server-3.7.3.zip

    我上传的 RabbitMQ3.7.3 亲测可用,能有效通高你的下载速度!(你从官网下载会很慢很慢) RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,...

    RabbitMQ 知识全面详解(值得珍藏)

    RabbitMQ的优势在于它支持多种客户端,具有易用性、扩展性和高可用性。它还提供了丰富的API和文档,以及活跃的社区支持。RabbitMQ的主要特性包括: 路由:RabbitMQ支持消息的路由功能,可以通过Exchange和Routing ...

    如何通过Python实现RabbitMQ延迟队列

    因为系统本身一直在用RabbitMQ做异步处理任务的中间件,所以想到是否可以利用RabbitMQ实现延迟队列。功夫不负有心人,RabbitMQ虽然没有现成可用的延迟队列,但是可以利用其两个重要特性来实现之:1、Time To Live...

    消息中间件 RabbitMQ

    消息中间件,实现代码解耦,流量削峰,队列有序等优秀功能。异步消息支持 多种消息传递协议, 消息队列, 传递确认, 灵活的队列路由, 多种交换...RabbitMQ 可以部署在分布式和联合配置中,以满足大规模、高可用性的要求.

    RabbitMQ技术详解

    用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。AMQP,即AdvancedMessageQueuingProtocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要...

    lyra:高可用RabbitMQ客户端

    Lyra 是一个包含故障的客户端,通过在发生时自动恢复 AMQP 资源来帮助您实现服务的高可用性。 Lyra 还支持自动调用重试、与恢复相关的事件,并公开了一个围绕库构建的简单、轻量级的 API。 请注意,Lyra 和 ...

    RabbitMQ实战 高效部署分布式消息队列完整版带书签

    AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。...用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    轻松使用rabbitmq.rar

    RabbitMQ简介 MQ(Message Queue,消息队列)是一种应用系统之间的通信方法。...用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 下面通过生产者代码来解释一下RabbitMQ中涉及到的概念。

    最详细RabbitMQ学习资料(源码)

    RabbitMQ是一个开源的消息队列中间件,它实现了高级消息队列协议(AMQP)并提供了可靠的消息传递机制。RabbitMQ旨在解决分布式系统中不同应用程序之间的异步通信和解耦的需求。 RabbitMQ的主要特点包括: 消息队列...

Global site tag (gtag.js) - Google Analytics