上一次学习了基本原理和使用,本篇学习下生产环境下的高可用原理及实现。

高可用架构

主备模式

一主一备或一主多备,在并发不是很大的场景可以使用这种模式,主节点负责读写,当主节点宕机之后,会切换到备用节点,也就是说备用节点会变成主节点,从而继续提供服务。

注重主备模式也称 Warren(兔子窝) 模式,是不是很形象!

image.png

HaProxy 会定期轮询做健康检查,切换设备,实现高可用。

远程模式

远程模式,也叫 Shovel 模式,它可以远距离的让两个集群的数据进行通信和复制。可以跨地域的让两个 MQ 集群互联。

不常用。

镜像模式

Mirror 模式,这种架构实际用的很多,能保证数据 100% 不丢失,而且使用简单。

在每个 MQ 节点中都有一个镜像队列用于数据的备份,然后每个节点的镜像队列互相通信复制,即时某个节点挂了,数据仍然不会丢失。如图:
image.png

多活模式

如果担心集群也挂掉,这个时候就可以搞多集群也就是多活模式,一般是两个集群中心,通过插件来保持集群之间的数据通信问题。

镜像模式高可用配置

一般用的比较多的就是镜像模式了,网上有很多,这里有一个步骤可以参考下:
RabbitMQ消息服务用户手册.docx