RabbitMq Cluster 和 High Availability

阅读更多
  • RabbitMq简介
  • RabbitMq exchange四种方式
  • RabbitMq Consumer和Producer端使用
  • RabbitMq确认机制
  • RabbitMq Cluster 和 High Availability

一、RabbitMq Cluster

RabbitMq Cluster 和 High Availability_第1张图片

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


二、RabbitMq High Availability

RabbitMq Cluster 和 High Availability_第2张图片
  • 镜像队列包括一个Master和多个Mirrors,如果Master挂掉时,最老的Mirror晋升为Master,还没有从Master复制到Mirrors的消息会丢失
  • Consumer连接到Mirror节点时会让Consumer重定向到Master,Consumer最终只和Master交互,这样保证了消息的先进先出
  • 镜像队列只是提升了高可用性,没有分担负载
  • 新晋升的Master会把没有收到ack的消息重新放入队列,包括旧Master没有收到的ack消息,Master收到ack,但是就是Master广播到Mirrors时丢失ack的消息。所以Consumer可能会收到重复消息。
  • RabbitMq Cluster 和 High Availability_第3张图片
  • 大小: 63.1 KB
  • RabbitMq Cluster 和 High Availability_第4张图片
  • 大小: 70.1 KB
  • 查看图片附件

你可能感兴趣的:(RabbitMq,Cluster,High,Availability,镜像队列,Mirrored,Queue)