前情提要
本章为RabbitMQ系列第三章。
以下为系列文章目录:
RabbitMQ 从入门到秃头 1 - Centos7 安装RabbitMQ
RabbitMQ 从入门到秃头 2 - SpringBoot整合RabbitMQ之生产者与消费者
好的,接下来我们进入正题。
主备模式
主备模式(warren),别名兔子窝。会准备一台主机和一台备用机,如果主节点挂了,从节点代替主节点继续提供服务,这种技术模式在很多技术栈中都有使用,例如AcitveMQ可以利用zookeeper实现主备模式。
需要注意的是,还有一种模式名字与主备模式非常相似,但是效果区别很大,那就是主从模式。
主备模式 : 主节点同时提供读写服务,从节点完全不提供服务,只做数据备份,只有当主节点挂掉之后,从节点才会成为(代替)主节点继续提供读写服务。
主从模式 : 主节点提供读写服务(或者只提供写服务,类似mysql读写分离),从节点提供读服务。
主备模式的优点和缺点都非常明显,优点是在数据量不高的情况下很好用,而且配置简单。缺点是同时只有一台服务器提供服务,假设并发量过高,把主节点打挂掉,即便从节点立即补上,也会很快的被打挂,所以这种模式只能用于数据量和并发较低的情况。
远程模式
远程模式(Shovel),即远距离通信和复制,可以实现双活,简称Shovel模式,Shovel指可以将消息复制到不同的MQ集群,可以跨地域的让两个MQ集群互联。
当某个MQ服务器(集群)负载过重时,会将信息转发到另一个MQ服务器(集群)上,让负载相对较低的服务器提供服务,降低并发压力。
缺点:可靠性比较低,而且配置起来非常复杂,所以一般情况下都不会采用这种模式。
镜像模式
镜像模式(Mirror),业界使用最广泛的模式,有一个极其强大的优点,就是高可靠,可以做到100%保证数据不丢失,并且集群的配置非常简单。
镜像模式实际上就是一个MQ集群,通过数据传输备份实现高可靠。对同一数据,所有节点都会进行备份。但是这样会有个缺点,无法横向扩容(添加服务器),因为每个节点都要备份所有数据,所以无法使用横向扩容的方式解决并发压力大的情况,极端情况下增加服务器数量,反而会导致备份时间更长,降低吞吐量。
多活模式
多活模式(Federation),依赖RabbitMQ的federation插件实现异地数据复制的主流模式,上面提到Shovel模式配置非常复杂,所以一般实现异地集群都是使用双活或者多活模型实现。
优点 :可以实现持续可靠的AMQP数据通信,多活模式的实际配置与应用非常简单。
如果文章有任何错误,欢迎指出~
感谢你的阅读,我们下回再见。
本文介绍了RabbitMQ的四种集群模式:主备模式、远程模式(Shovel)、镜像模式和多活(Federation)模式。主备模式在数据量小、并发低时适用;远程模式用于跨地域消息复制,但可靠性较低;镜像模式提供高可靠性,但无法横向扩容;多活模式则实现异地数据复制,配置简单。每种模式有其优缺点,适合不同场景需求。

被折叠的 条评论
为什么被折叠?



