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

Pat*_*bee 3 rabbitmq

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

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

Development:STACK_1_WEBSERVER_V2:1:2.9.0.0
Run Code Online (Sandbox Code Playgroud)

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

我正在使用直接交换。我认为 Direct 就足够了,我不需要对通过主题交换获得的路由密钥进行通配符的能力。

直接交换和路由密钥解决方案是否应该与 BasicGet 一起使用?

谢谢

Phi*_*ano 5

尽管您的 getter 是从包含具有多个路由键的消息的队列中提取数据,但直接交换和路由键就足够了。您需要为每个想要拥有自己的消息组的 getter 设置单独的队列。

这不是basic.get和 之间的区别basic.consume

当您从队列中提取消息时,交换类型和路由键并不重要,消息已经被路由到队列。

  • 路由键用于告诉 RabbitMQ 如何处理发布到交换器的消息。服务器将路由密钥与队列的绑定密钥进行匹配,并根据交换类型决定如何处理消息。 (2认同)