使用kombu从多个虚拟主机中消费队列

Posted

技术标签:

【中文标题】使用kombu从多个虚拟主机中消费队列【英文标题】:consume queue from multiple vhosts with kombu 【发布时间】:2016-05-10 12:39:25 【问题描述】:

我有以下情况。我有一个虚拟主机列表。在每个虚拟主机中,我都有一个队列(所有虚拟主机中的名称相同)。有没有办法同时消耗队列? (我不想为每个虚拟主机创建一个单独的进程)我想要一个消费者,从所有队列中消费。 我正在使用kombu和rabbitmq。 谢谢

【问题讨论】:

【参考方案1】:

基于https://www.rabbitmq.com/uri-spec.html:

amqp_URI = "amqp://" amqp_authority [ "/" vhost ] [ "?"查询]

amqp_authority = [amqp_userinfo "@"] 主机 [":" 端口]

amqp_userinfo = 用户名 [ ":" 密码 ]

用户名 = *( 未保留 / pct-encoded / sub-delims )

密码 = *( 未保留 / pct-encoded / sub-delims )

vhost = 段

每个vhost 需要一个连接。 所以,不,你不能。

一般来说,你不能有多个队列的单个订阅者,即使它们在同一个vhost

【讨论】:

以上是关于使用kombu从多个虚拟主机中消费队列的主要内容,如果未能解决你的问题,请参考以下文章

用kombu创建rabbitmq vhost

Go RabbitMQ

[源码分析] 消息队列 Kombu 之 启动过程

RabbitMQ集群

具有多个消费者的线程队列

为什么要运行消息队列(例如RabbitMQ)集群?