一.消息队列如何保证高可用性?
rabbitMQ不是分布式的架构设计
分为三种设计模式:
一.单机模式
二.普通集群模式(可用性无保障,只是解决了吞吐量问题,但是对于HA高可用并不能进行保障)
三.镜像集群模式(具有HA高可用性,但是本质也是一个集群部署的方式)
二.普通集群模式图
用户 rabbitMQ作为集群进行部署到多台机器上
queue 之间的元数据,相互沟通,定位,作为一个路由的规则,来找到rabbitMQ节点实际的数据
存在的缺点: 1.在rabbitMQ内部产生大量数据传输
2.可用性几乎没有任何保障,如果那个queue所在的节点宕机了,该节点所存储的数据,便消失啦
四.镜像集群模式图、
实际的数据都会被rabbitMq同步过来,从而实现数据多重备份,实现消息队列的高可用性(HA)HA
每个队列都包含全部镜像,‘任何一个节点宕机了,其他节点上都包含这个queue 的完整数据
别的consumer 都可以到其他活着的节点上消费数据
缺点:
他不是分布式得
将会导致一个rabbitMq的数据量非常大