前面章节简单介绍了 Feduration 插件,以及怎样安装 Feduration 插件。本章节将介绍怎样使用 HTTP API 接口方式来设置 Feduration 相关的运行参数和策略(Federation upstream)。
下面将详细讲解如何正确地使用 Federation 插件,以 broker1(IP地址:192.168.116.51)和 broker2(IP地址:192.168.116.52)为例,在两者之间建立 Feduration exchange。
在 broker1 和 broker2 中开启 rabbitmq federation 插件和 rabbitmq federation management 插件(如果不知道怎么开启,可以参考 Federation 插件安装)。
使用 POSTMAN 发起 PUT 请求访问 http://192.168.116.51:15672/api/exchanges/%2f/federated_exchange 地址,在默认虚拟主机下面创建名为 federated_exchange 的交换机,如下图:
特别提醒,使用 POSTMAN 调用 RabbitMQ HTTP API 时需要鉴权(采用 Basic Auth 方式),如下图:
创建好的交换器如下图:
使用 POSTMAN 发起 PUT 请求访问 http://192.168.116.51:15672/api/queues/%2f/federated_queue 地址,在默认虚拟主机下面创建一个名为 federated_queue 的队列。如下图:
创建好的队列如下图:
使用 POSTMAN 发起 POST 请求访问 http://192.168.116.51:15672/api/bindings/%2f/e/federated_exchange/q/federated_queue 地址,将名为 federated_queue 的队列绑定到名为 federated_exchange 的交换器,如下图:
绑定成功后,效果如下图:
使用 POSTMAIN 发起 PUT 请求访问 http://192.168.116.51:15672/api/parameters/federation-upstream/%2f/federation-demo 地址,在默认虚拟机主机下面创建一个名为 federation-demo 的 Federation Upstream。如下图:
效果如下图:
使用 POSTMAN 发起 PUT 请求访问 http://192.168.116.51:15672/api/policies/%2f/federation-policy 地址,创建一个名为 federation-policy 的策略。如下图:
上图中,"apply-to": "all" 表示应用到交换器和队列。
如果你成功完成了上面所有步骤,那么直接访问 http://192.168.116.51:15672/#/federation 地址,点击“Running Links”按钮查看正在运行的连接。如下图:
上图中的连接就是我们刚刚创建好的 Federation 连接信息。如果能正常看见连接信息,则 Federation Upstream 创建成功了,不容易啊!!!接下来开始测试是否可用
到这里,前面已经成功创建了 Federation Upstream,接下来移步到 broker2,访问 http://192.168.116.52:15672/#/exchanges 地址,查看我们创建的 federated_exchange 队列(注意:该交换器不需要手动创建,当我们在 broker1 中成功创建 Federation Upstream 后,将会自动为我们创建一个同名的交换器和队列到 broker2)。选中 federated_exchange 队列,点击“Publish message”按钮去发送消息,如下图:
上图中,只在 Payload 中填写了消息内容“hello message”,并发送。
上一步骤成功发送了消息,我们返回到 broker1 上,访问 http://192.168.116.51:15672/#/queues 地址,选中 federated_queue 队列,点击“Get messages”按钮去消费一个消息。如下图:
上图中,成功地消费了从 broker2 发送过来的消息。