RabbitMq Cluster 和 High Availability


一、RabbitMq Cluster

 

 

  • 所有节点两两相连
  • users, virtual hosts, exchanges, bindings,queue metadata会自动镜像到所有Node
  • 连接任意一个Node都能看到集群中的所有Queue
  • 在集群中的所有节点必须是相同的Erlang cookie
  • Queue消息只在一个节点中存储
  • 如果Consumer连接Node2,获取Queue1消息,Node2会从Node1获取消息然后返回给Consumer


二、RabbitMq High Availability

 

  • 镜像队列包括一个Master和多个Mirrors,如果Master挂掉时,最老的Mirror晋升为Master,还没有从Master复制到Mirrors的消息会丢失
  • Consumer连接到Mirror节点时会让Consumer重定向到Master,Consumer最终只和Master交互,这样保证了消息的先进先出
  • 镜像队列只是提升了高可用性,没有分担负载
  • 新晋升的Master会把没有收到ack的消息重新放入队列,包括旧Master没有收到的ack消息,Master收到ack,但是就是Master广播到Mirrors时丢失ack的消息。所以Consumer可能会收到重复消息
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值