Java Rabbitmq中四种集群架构的区别详解

Rabbitmq 四种集群架构

1. 主备模式 
2. 远程模式
3. 镜像模式  
4. 多活模式

主备模式

主备模式: warren 兔子窝 一个主、一个备方案 主节点如果挂了 从节点提供服务 和Activemq 利用zk 做主/备一样

Java Rabbitmq中四种集群架构的区别详解_第1张图片

主备模式 -----------------------》HaProxy 配置

listen rabbitmq_cluster 
bind 0.0.0.0:5682 # 配置tcp 模式
mode tcp # 简单的轮询
balance roundrobin #主节点 
server bhz76 192.168.11.78:5672 check inter 5000 rise 2 fall 2 
server bhz76 192.168.11.79:5672 backup check inter 5000 rise 2 fall 2   #备用节点  

远程模式

远程模式 远距离通信和复制 可以实现双活的一种模式,简称 Shovel 模式 配置麻烦 现在使用不多

所谓Shovel 就是我们可以把消息进行不同数据中心的复制工作 ,可以跨地域的让两个mq 集群互联

Java Rabbitmq中四种集群架构的区别详解_第2张图片

Java Rabbitmq中四种集群架构的区别详解_第3张图片

1.0 Step1 启动RabbitMq 插件  
​     rabbitmq-plugins enable amqp_client 
​     rabbitmq-plugins enable rabbitmq_shovel
2. 0 创建rabbitmq.config 文件
   touch /etc/rabbitmq/rabbitmq.config

Java Rabbitmq中四种集群架构的区别详解_第4张图片

镜像模式

集群模式非常经典的就是Mirror 镜像模式 保证100%数据不丢失

在实际工作中用的最多 并且实现集群非常的简单 一般互联网大厂 都会使用这样构建这种镜像集群模式

Mirror 镜像队列

高可靠 ----------》数据同步 —》elang 交换机 ----》3节点

Java Rabbitmq中四种集群架构的区别详解_第5张图片

缺点 :没有保证横向扩容

多活模式

这种模式也是实现异地数据复制的主流模式 因为Shovel 模式 配置比较复杂 所以一般来说实现异地集群都是使用这种双活或者 多活模型来实现的

这种模型需要依赖RabbitMq 的federation 插件 可以实现持续的可靠的Amqp 的数据通信 多活模式实际配置与应用非常简单

RabbitMq 部署架构采用双中心模式 多中心 那么在两套 或多套 数据中心中客部署一套 RabbitMq 集群 客中心的RabbitMq 服务除了需要为业务提供正常的消息服务外 中心之间还需要实现部分队列消息共享

Java Rabbitmq中四种集群架构的区别详解_第6张图片

Federation 插件

Federation 插件 是一个不需要构建Cluster 而在Brokers 之间传输消息的高性能插件 Federation 插件 可以在Brokers 或者Cluster 之间传输消息 连接的双方可以使用不同的users 和virtual hosts 双方也可以使用版本不同的 RabbitMqErlang Federation 插件使用AMQP 协议通讯 可以接收不连接的传输

Federation Exchanges 可以看成Downstream 从Upstream 主动拉取消息 但并不是拉取所有消息 必须是在Downstream 上已经明确定义Bindings 关系的 Exchange 也就是有实际的物理 Queue 来接收消息 才会从Upstream 拉取消息组合在一起 ,绑定/解除绑定命令将发送到Upstream 交换机 因此 Federation Exchanges 只接收具有订阅的消息

Java Rabbitmq中四种集群架构的区别详解_第7张图片

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容! 

你可能感兴趣的:(Java Rabbitmq中四种集群架构的区别详解)