面试精讲:RabbitMQ高可用

RabbitMQ是基于主从做高可用性的,有两种模式

1. 普通集群模式

这种方案没有高可用性,主要是提高吞吐量,让集群中多个节点来服务某个queue的读写操作。

每个机器启动一个rabbitmq,使用多台机器,但是创建的消息队列只会在一个rabbitmq上,其他rabbitmq实例每次同步消息队列的数据。

当连到其他rabbitmq实例消费时,会从消息队列实例拉取数据过来。如果那个消息队列的实例宕机了,会导致其他实例无法从消息队列实例拉取数据,如果开启了消息持久化,让rabbitmq落地存储消息的话,消息不一定会丢,等这个实例恢复了,然后才可以继续从这个消息队列拉取数据。

缺点

1. 可用性几乎没有什么保障,如果queue所在的节点宕机了,就会导致queue的数据丢失,没有办法消费。

2. 可能会在rabbitmq集群内部产生大量的数据传输

2. 镜像集群模式

这种模式,才是所谓的rabbitmq的高可用模式,跟普通集群模式不一样的是,你创建的queue,无论元数据还是queue里的消息都会存在多个实例上,然后每次你写消息到queue时,都会自动把消息在多个实例的queue进行消息同步。

好处在于,你任何一个机器宕机了,别的机器都可以用。坏处在于,1. 这个性能开销太大,消息同步所有机器,导致网络带宽压力和消耗很重。2. 没有扩展性可言,如果某个queue负载很重,你加机器,新增的机器也包含了这个queue的所有数据,并没有办法扩展你的queue。3. 不是分布式的

怎么开启这个镜像集群模式rabbitmq有很好的控制台,就是在后台新增一个策略,这个策略是镜像集群模式策略,指定的时候可以要求数据同步到所有节点,也可以要求同步到指定数量的节点,然后再次创建queue的时候,应用这个策略,就会自动将数据同步到其他的节点上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值