rabbitmq集群架构(转载)

rabbitmq集群四种架构模式:
一、主备模式 (Warren)
二、镜像模式 (Mirror)
三、远程模式   (Shovel)
四、多活模式 (Federation)
 
 
主备模式:开发中最直接的模式就是主备模式:主要实现RabbitMQ的高可用集群,通常在并发和数据量不高的状况下,这种模型很是的好用且简单,主备模式也称为Warren模式。也就是一主一备,对于集群来讲至少有两台 云服务器,那么这两台 服务器一台在工做,一台在闲置,注意,这个的主备和咱们以前的主从是不同的,主从的话是一台做为主服务器,一台做为从服务器,虽然这两台是数据同步,主负责读写,而从只负责只读,而主备是一台工做一台闲着,若是一台服务器宕机了,那么备服务器切换过来,可能的话,这种对于负载均衡的话一台只忙着干活,一台只闲着,这种的生产中用的也不多,这种会形成咱们资源的一个浪费。
 

镜像模式:集群模式很是经典的就是Mirror镜像模式,保证100%数据不丢失,在实际工做中也是用的最多的,并且实现集群也很是简单,通常互联网大厂都会构建这种镜像集群模式,原理主要是在主备的基础上进行了扩展,集群中全部的节点设备都是同步的,每个队列,交换机里面的配置信息和咱们的数据都是同步的,对于这些镜像在底层同时进行工做,前面的话采用一个负载均衡器,采用nginx或者haproxy也好,进行负载均衡。html

 

远程模式:远程模式能够实现双活的一种模式,简称Shovel模式,所谓Shovel就是咱们能够把消息进行不一样数据中心的复制工做,咱们能够跨地域的让两个MQ集群互联,好比说一个集群,咱们都会放在一个机房里面,那么若是北京的机房出现了一些事故停电,或者天然灾害,那么这个集群都会宕机了,那么在咱们对数据要求极高的大型应用咱们须要设置多活或者双活的模式,也就是要搭建多个数据中心,或者多套集群,那么这些集群能够一个会放在上海,一个放在北京,还有应放在广州,三个集群数据都是同步的,中间有任何一个集群出现了问题,立刻灵活的切换,那么这三个集群都是能够访问的话,咱们可能会按照距离,或者访问速度来进行优先选择哪组集群,或者数据中心进行访问,全部多活模式,在银行开发的时候通常也叫作容灾的机制,至少构建两套集群放在不一样的地域,一个有问题了,立马进行切换,不至于整个系统宕机,这就是多活模式,在多活模式中MQ也提供了相应的实现方式,早期使用的Shovel模式,这个模式是mq自带的一种模式,主要就是能够把消息在不一样的数据中心进行负载分发,主要就是能够实现跨地域的让两个mq集群进行互联。nginx


那么这个shovel模式须要统一的版本,网络达到一个什么样的水平,配置的话也是有些复杂,这种的话目前已经淘汰了,在真正的数据复制的状况下,会使用多活模式。服务器

多活模式:这种模式也是实现异地数据复制的主流模式,这种模式是依赖rabbimq的fedrtation插件的模式
自己不是mq自带的东西,是在mq上进行了扩展,而这种扩展是实现的可靠的AMQP的数据通讯,所以配置起来也比较容易,至关于配置简单化以后的shovel。网络

 

原文地址:https://www.yisu.com/zixun/115327.html架构