RabbitMQ之Federation配置

一、Federation介绍

federation 插件的最终目标是,在不同 broker 之间进行消息传递而无需建立集群

二、Federation特点

1、松耦合性(Loose coupling)

  • federation 插件能够在分属不同管理域的 broker 或 cluster 之间传递消息:
  • 他们可能设置了不同的 user 和 vhost ;
  • 他们可能运行在不同版本的 RabbitMQ 和 Erlang 上;

2、WAN 友好性(WAN-friendly)

  • federation 插件基于 AMQP 0-9-1 协议在不同 broker 之间进行通信,并设计成能够容忍不稳定的网络连通情况;

3、扩展性(Scalability)

  • federation 不需要在 n 个 broker 之间建立 O(n^2) 个连接(尽管这是最简单的使用模式),这也就意味着 federation 在使用时更容易扩展

三、Federation能做到什么

federation 插件允许将多个 exchange 或多个 queue 进行 federate ;federated exchange 或 federated queue 能够从一个或多个 upstream 接收到消息;

名词释义

  • upstream: 上游,是指位于其他 broker 上的、远端 exchange 和 queue ;
  • federated exchange: 到exchange的关系,能够将发给 upstream 的消息路由到本地的某个 queue 中;
  • federated queue: 到queue的关系,则允许一个本地消费者接收到来自 upstream queue 的消息

四、具体配置

1、每个节点上都要开启federation插件

[root@node02 rabbitmq]# rabbitmq-plugins enable rabbitmq_federation_management
Enabling plugins on node rabbit@node02:
rabbitmq_federation_management
The following plugins have been configured:
  rabbitmq_federation
  rabbitmq_federation_management
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_tracing
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@node02...
The following plugins have been enabled:
  rabbitmq_federation
  rabbitmq_federation_management

started 2 plugins.

2、登录到Web管理界面

如果未开启web界面插件,需开启。RabbitMQ之Federation配置_第1张图片

3、在下游(被同步队列)创建upstream

RabbitMQ之Federation配置_第2张图片

4、创建policy

RabbitMQ之Federation配置_第3张图片

5、查看状态图

  • 下游
    RabbitMQ之Federation配置_第4张图片
  • 上游
    RabbitMQ之Federation配置_第5张图片
    感谢机智的程序员小熊写的博客。
    参考文献:https://coding3min.com/451.html

你可能感兴趣的:(RabbitMQ,rabbitmq)