rabbitmq_shovel以队列消息转移的方式实现不同的vhost互通

原理我就不多说了,请自行参阅https://www.rabbitmq.com/shovel.html

在我们实现开发过程中,很常见的应用场景就是一个功能服务设置一个vhost来进行功能管理划分及隔离,这样即方便进行权限管理,也方便消息隔离,但是rabbitmq的vhost相当于虚拟机的概念,vhost之间是物理隔离的,无法进行互通。

好了,那么问题来了,我们一个典型的场景就是我有一个活动的服务,他拥有自己的vhost-1,然后我有一个红包的服务,他也有自己的vhost-2,但是有业务需求要求活动服务给红包服务发送队列消息,但是两个vhost又是不能互通的,这就尴尬了。

还好,rabbitmq提供了一个插件 shovel,他相当于建立一个消费者,来将消息从一个队列转移到另一个队列.

下面说一下具体的设计过程

首先在源mq里执行如下命令,安装插件

rabbitmq-plugins enable rabbitmq_shovel

执行后,找开mq的web管理界面,可以看到

点击Shovel Management菜单

 

将对应的信息填好,这里注意,因为我们建vhost的时候一般喜欢带个“/”,但是,在uri中直接填“/”他会当成路径来处理,所以这个地方要用%2f来转义。其它的就是将你源队列及目录队列信息填好,然后添加即可。

添加后,在shovel status菜单中可以看到如下,state为runing状态,即为正常添加成功。可以在web页面发个消息进行测试。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值