【问题标题】:AMQP - Does the consumer have acess to the routing key?AMQP - 消费者是否有权访问路由密钥?
【发布时间】:2012-11-19 14:15:52
【问题描述】:

我已经设置了一个主题交换,以便消费者队列与“#.topic”绑定。我想根据前缀使用不同的确认策略。是否将完整的路由密钥发送给消费者?如果是这样,我该如何访问它? AMQP 概念方面的答案可能就足够了,但涉及 rabbitmq-c 的答案将是理想的。

【问题讨论】:

    标签: c rabbitmq amqp


    【解决方案1】:

    即使您像在示例中给出的那样进行绑定,收到的消息也包含完整的路由键。这意味着您可以提取它以帮助您处理消息。不幸的是,我只知道如何在 Java 中执行此操作,因此请尝试从那里进行推断。

    QueueingConsumer.Delivery delivery = consumer.nextDelivery();
    String routingKey = delivery.getEnvelope().getRoutingKey();
    

    传递对象包含一个作为有效负载的主体,可以使用delivery.getBody() 和一个包含其他信息(如完整路由键)的信封对象进行检索。

    【讨论】:

    • 在C# api上,可以通过RabbitMQ.Client.Events.BasicDeliverEventArgs.RoutingKey属性(Basic Deliver Event回调中的对象)访问Routing Key
    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2014-01-10
    • 2023-02-07
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    相关资源
    最近更新 更多