RabbitMQ的是基于Erlang语言编写,而Erlang又是一个面向并发的语言,天然支持集群模式。RabbitMQ的集群有两种模式:
•普通集群:是一种分布式集群,将队列分散到集群的各个节点,从而提高整个集群的并发能力。
● 会在集群的各个节点间共享部分数据,包括:交换机、队列元信息。不包含队列中的消息。
● 当访问集群某节点时,如果队列不在该节点,会从数据所在节点传递到当前节点并返回
● 队列所在节点宕机,队列中的消息就会丢失
•镜像集群:是一种主从集群,普通集群的基础上,添加了主从备份功能,提高集群的数据可用性。
● 交换机、队列、队列中的消息会在各个MQ的镜像节点之间同步备份。
● 所有操作都是主节点完成,然后同步给镜像节点
● 主宕机后,镜像节点会替代成新的主