具有多个路由键的 RabbitMQ 单一交换和单一队列

标签 rabbitmq

我正在尝试使用 BasicGet 仅检索与 Channel 的 Exchange/Queue/RoutingKey 组合匹配的消息。

我们的路由键的一个例子是

Development:STACK_1_WEBSERVER_V2:1:2.9.0.0

我遇到的问题是路由 key 被完全忽略,所有消息,无论指定的路由 key 是什么,都可以通过 BasicGet 获得。

我正在使用直接交换。虽然 Direct 就足够了,但我不需要通配符通过主题交换获得的路由键的能力。

直接交换和路由 key 解决方案应该与 BasicGet 一起使用吗?

谢谢

最佳答案

直接交换和路由键就足够了,尽管你的 getter 是从一个队列中拉取消息的,队列中有带有多个路由键的消息。您将需要为每个需要自己的消息组的 getter 设置单独的队列。

这不是 AMQP 中 basic.getbasic.consume 之间的区别。

当您从队列中拉取消息时,交换类型和路由键无关紧要,消息已经被路由到队列中。

关于具有多个路由键的 RabbitMQ 单一交换和单一队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903537/

相关文章:

RabbitMQ:从队列扇出(不是从交换)

java - Spring amqp 当rabbitmq server和consumer之间出现网络故障时,抛出AmqpIOException,consumer不会重试

docker - 未在Rabbit MQ Docker镜像3.7.6上安装auth_backend_http

python - 从另一个容器中的服务连接到 rabbitmq docker 容器

rabbitmq - celery - 以编程方式列出队列

node.js - amqp vs amqplib - 哪个 Node.js amqp 客户端库更好?

sql-server - 如何从 SQL Server 向 RabbitMQ 发布消息?

java - RabbitMQ 和 Spring : how to get all subscriptions

PHP 守护进程/工作环境

rabbitmq - RabbitMQ 的典型版本控制策略是什么?