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 只接收具有订阅的消息
|