【问题标题】:RabbitMQ single exchange and single queue with multiple routing keys具有多个路由键的 RabbitMQ 单交换和单队列
【发布时间】:2014-01-21 02:47:27
【问题描述】:

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

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

Development:STACK_1_WEBSERVER_V2:1:2.9.0.0

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

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

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

谢谢

【问题讨论】:

    标签: rabbitmq


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回答。所以路由键不能用于在单个键中路由消息,对吗?那它们有什么用呢?
    • 路由键用于告诉 RabbitMQ 如何处理发布到交换的消息。服务器将路由键与队列的绑定键匹配,并根据交换的类型决定如何处理消息。
    • 什么是“取决于交换的类型决定如何处理消息”。听起来路由键是当队列绑定到该路由键时决定在 BasicGet 上返回什么消息时使用的数据的一部分。
    • 我们明显误解了路由键。因此,您能否确认它们只是用作 RabbitMq 的一种方式,用于计算在您发布时将消息添加到哪个队列,并且出队消息只是从根本不关心路由键的队列中读取。谢谢
    猜你喜欢
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 2019-08-03
    • 2016-10-30
    • 1970-01-01
    相关资源
    最近更新 更多