RabbitMQ-SET化架构实现

SET化消息中间件架构实现

RabbitmQ双活架构图

注意:

如果镜像队列过多,同步时会慢,影响性能

如果设置镜像队列的某几台服务器同步,路由规则会多,维护复杂难

使用set化拆分集群,通过路由规则负责将消息路由到某个集群

使用RabbitMQ异步消息通信插件 Federation的安装与配置

rabbitmq-plugins enable rabbitmq_federation

rabbitmq-plugins enable rabbitmq_federation_management

备注:当你在一个cluster中使用federation插件,所有集群的nodes都需要安装federation插件

先单点同步,比如黄node3和绿node1进行同步,由于是镜像机制,绿的集群会通过node1同步整个集群

RabbitMQ通信插件Federation特点

Federation插件是一个在不需要cluster,而brokers之间传输的高性能插件

Federation插件可以在brokers或者cluser之间传输消息,链接的双方可以使用不用的users和virtual hosts、或者双方的rabbitmq和erlang版本不一致,Federation插件使用不同AMQP协议通信,可以接受不连续的传输

环境搭建

启动Federation插件

//两个节点都要启动

rabbitmq-plugins enable rabbitmq_federation

rabbitmq-plugins enable rabbitmq_federation_management

如在Admin中能看到下图,表示成功

策略

20做Upstream

21做Downstream

将消息发送到20节点上,消息通过Federation流转到21节点上

下游配置-exchange和queue

下游配置-Upstream

URI:填上游的地址

下游配置-配置策略

^test以test开头的交换机或队列都可以匹配

 

上游变化

这两个连接一个是exchange,一个是queue

test.exchange是自动构建的

test.queue是自动构建的

消息测试

将消息发送到上游中

 

上游

下游

上游和下游消费同一条消息

需要在上游建新的队列和绑定路由

 

将消息发送到上游中

上游

下游

SET化配置规则

  1. Federation Exchanges,可以看出Downstream(21节点)从Upstream(20节点)主动拉取消息,但并不是拉取所有消息,必须是在Downstream上已经明确定义Bindings关系的Exchange,也就是有实际的物理Queue来接收消息,才会从Upstream拉取消息到Downstream。使用AMQP协议实施代理间通信,Downstream会将绑定关系组合在一起
  2. 经过配置后,Upstream节点已经把消息直接通过Federation Exchanges路由给我们的Downstream节点,然后进行消费,也就是说,可以实现路由转发,接下来可以在Upstream添加具体的队列去进行消费Federation Exchanges里的消息,我们一条消息分别发到2个RabbitMQ集群并消费,这样我们可以实现SET化的关键要素,就是集群间的消息同步了
  3. 可以根据自己的业务规则去规划不同的集群去监听不同的消息队列,从而达到SET化的手段,保障了性能、可靠性、数据一致性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值