一、前言
一家非常大的互联网公司,非常核心的系统,就是忽略了MQ,没考虑MQ如何保证高可用。如果MQ挂了怎么办?导致几个小时系统不可用,公司损失几千万。team背锅。
二、RabbitMQ的高可用
1、单机模式
单机模式,一般就是做demo玩玩,线上没有人这么用。
2、普通模式
1)缺点1:可能会在rabbitMQ集群内部产生大量的数据传输。
2)缺点2:可用性几乎没有什么保障,如果queue所在的节点宕机了。就导致queue的数据就丢失了。没有办法消费了。
3、镜像模式
每个节点上都有queue的一个完整镜像,就是包含了这个queue全部数据的意思。所以这个集群模式叫作镜像集群模式。
任何一个节点宕机了,没问题。其他节点还包含了这个queue的完整数据,别的consumer都可以到其他的节点上去消费数据,都是ok的。
缺点:不是分布式的,如果这个queue的数据很大,大到这个机器上的容量如何容