Java Rabbitmq中四种集群架构的区别详解
Rabbitmq 四种集群架构
1. 主备模式
2. 远程模式
3. 镜像模式
4. 多活模式
主备模式
主备模式: warren 兔子窝 一个主、一个备方案 主节点如果挂了 从节点提供服务 和Activemq 利用zk 做主/备一样
主备模式 -----------------------》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 集群互联
1.0 Step1 启动RabbitMq 插件 rabbitmq-plugins enable amqp_client rabbitmq-plugins enable rabbitmq_shovel 2. 0 创建rabbitmq.config 文件 touch /etc/rabbitmq/rabbitmq.config
镜像模式
集群模式非常经典的就是Mirror 镜像模式 保证100%数据不丢失
在实际工作中用的最多 并且实现集群非常的简单 一般互联网大厂 都会使用这样构建这种镜像集群模式
Mirror 镜像队列
高可靠 ----------》数据同步 —》elang 交换机 ----》3节点
缺点 :没有保证横向扩容
多活模式
这种模式也是实现异地数据复制的主流模式 因为Shovel 模式 配置比较复杂 所以一般来说实现异地集群都是使用这种双活或者 多活模型来实现的
这种模型需要依赖RabbitMq 的federation 插件 可以实现持续的可靠的Amqp 的数据通信 多活模式实际配置与应用非常简单
RabbitMq 部署架构采用双中心模式 多中心 那么在两套 或多套 数据中心中客部署一套 RabbitMq 集群 客中心的RabbitMq 服务除了需要为业务提供正常的消息服务外 中心之间还需要实现部分队列消息共享
Federation 插件
Federation 插件 是一个不需要构建Cluster 而在Brokers
之间传输消息的高性能插件 Federation 插件 可以在Brokers 或者Cluster 之间传输消息 连接的双方可以使用不同的users 和virtual hosts
双方也可以使用版本不同的 RabbitMq
和Erlang Federation
插件使用AMQP 协议通讯 可以接收不连接的传输
Federation Exchanges
可以看成Downstream
从Upstream 主动拉取消息 但并不是拉取所有消息 必须是在Downstream
上已经明确定义Bindings 关系的 Exchange 也就是有实际的物理 Queue 来接收消息 才会从Upstream 拉取消息组合在一起 ,绑定/解除绑定命令将发送到Upstream
交换机 因此 Federation
Exchanges
只接收具有订阅的消息
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
相关文章
java集合框架 arrayblockingqueue应用分析
ArrayBlockingQueue是一个由数组支持的有界阻塞队列。此队列按 FIFO(先进先出)原则对元素进行排序。队列的头部 是在队列中存在时间最长的元素2012-11-11Spring中的@ConditionalOnProperty作用和用法详解
这篇文章主要介绍了Spring中的@ConditionalOnProperty作用和用法详解,在spring boot中有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@Configuration是否生效,需要的朋友可以参考下2023-11-11Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔断的示例
这篇文章主要介绍了Spring Cloud Alibaba 使用 Feign+Sentinel 完成熔断的示例,帮助大家更好的理解和学习使用Spring Cloud,感兴趣的朋友可以了解下2021-03-03
最新评论