Java Rabbitmq中四种集群架构的区别详解
目录
- 主备模式
- 远程模式
- 镜像模式
- 多活模式
- Federation插件
- 总结
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
只接收具有订阅的消息
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!