我正在尝试使用 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.get
和 basic.consume
之间的区别。
当您从队列中拉取消息时,交换类型和路由键无关紧要,消息已经被路由到队列中。
关于具有多个路由键的 RabbitMQ 单一交换和单一队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903537/