需求:利用Federation在rabbitmq集群区域之间做下消息同步

香港HK集群:exchange消息转发到--》国内SH集群:exchange消息

rabbitmq有个插件是专门做这件事情的那就是:Federation,换有几个插件,没有研究,目前决定了就用这个。

实现过程:
1,启动Federation插件,在HK和SH集群都启动,并创建一个账号作为消息同步使用(这个自己随便创建一个就行权限给大点)
`启用federation插件
rabbitmq-server -detached
rabbitmq-plugins enable rabbitmq_federation
启用federation管理插件
rabbitmq-plugins enable rabbitmq_federation_management
有关Federation upstream 的信息全部都保存在RabbitMQ 的Mnesia 数据库中,包括用户信息、权限信息、队列信息等。在Federation 中存在3 种级别的配置。

( 1) Upstreams :每个upstream 用于定义与其他Broker 建立连接的信息。
(2) Upstream sets :每个upstream set 用于对一系列使用Federation 功能的upstream 进行分组。
(3) Policies :每一个Policy 会选定出一组交换器,或者队列,亦或者两者皆有而进行限定,进而作用于一个单独的up steam 或者upstream set 之上。
`
2,在香港HK和国内SH集群分别创建相同的exchange。(此处务必一致)

3,在国内SH集群定义:upstarem和Policies
rabbitmqctl set_parameter federation-upstream name1 '{"uri":"amqp://admin:admin@174.100.1.100:5672","ack-mode":"no-ack"}'
rabbitmqctl set_policy --apply-to queues p1 "^mtest" '{"federation-upstream":"name1"}'
mtest:这是一个exchange最好使用通配符

应该没啥问题!

posted @ 2021-06-01 13:17  quicksand.F  阅读(281)  评论(0编辑  收藏  举报