Federation插件可以使RabbitMq不同的Broker节点进行消息传递而不必建立集群,Federation插件能够运行在不同版本的RabbitMq上。
Federation插件可以让多个交换器或者队列建立联邦关系,联邦交换器或联邦队列接收上游(交换器或队列)的消息。联邦交换器将原本发送给上游交换器的信息路由到本地某个队列上,而联邦队列允许本地的消费者消费到上游队列的消息。
一、联邦交换器(Federated Exchange)
联邦交换器链接到上游交换器,发送到上游交换器的消息被路由到联邦交换器上,就好像消息被直接发送到联邦交换器一样。下图展示了一个联邦交换器与其他两个Broker节点上上游交换器建立了联邦关系。
Federated Exchange实现:
这里我在单机上启动了两个RabbitMq节点,rabbitmq1@hadoop和rabbitmq2@hadoop。
(1)开启Federation插件功能
rabbitmq1@hadoop和rabbitmq2@hadoop两个节点都需要开启,如果是多机单节点部署可以去掉-n选项。
开启Federation插件功能之后,可以在web管理界面看到如下显示:
(2)在rabbitmq2@hadoop上定义一个upstream
指定rabbitmq1@hado