我有一个RabbitMQ服务器,它接收到一个名为“ce_func”的虚拟主机内的交换消息,这个交换绑定到一个名为“azure_trigger”的队列。
我想使用Azure Functions的新RabbitMQ绑定从Rabbit收集。很遗憾,这仅限于从虚拟主机“/”收集。我希望可以使用Rabbit的联合身份验证功能自动路由到同一服务器的“/”虚拟主机内的“azure_trigger”队列,但到目前为止我失败了。
我创建了一个Rabbit“上游”并将“策略”应用于该上游,但我无法确定配置。我的联合状态为“正在运行”,但它仅检查“ce_func”虚拟主机,我无法看到在何处可以将目标交换设置为“/”虚拟主机。
有人能指点一下吗?
2条答案
按热度按时间r6hnlfcb1#
如果我没理解错的话,您希望在不同vhost中的队列之间传递消息。
RabbitMQ社区建议使用Shovel plugin来处理这种情况:
源和目标可以位于同一代理上(通常位于不同的vhost中),也可以位于不同代理上。
qnakjoqk2#
可以在federation-upstream配置的
uri
字段中引用中的任何虚拟主机(vhost),格式为:简单来说,你可以在uri的末尾加上vhost,例如
amqp://localhost:5672/myvhost
...如果你的vhost名称是空的,那么只要确保你包括尾部斜杠“/”,例如amqp://localhost:5672/
。特定于rabbitmq文档中的空白vhost的注解(https://www.rabbitmq.com/uri-spec.html)
vhost组件可能不存在;这通过amqp_authority后面缺少“/”字符来表示。缺少vhost组件不等同于空(即零长度)vhost名称。