AMQP - 消费者是否可以访问路由密钥?

时间:2012-11-19 14:15:53

标签: c rabbitmq amqp

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

1 个答案:

答案 0 :(得分:7)

即使您按照示例中的方式进行绑定,收到的消息也包含完整的路由密钥。这意味着您可以提取它以帮助您处理消息。不幸的是,我只知道如何用Java做到这一点,所以试着从那里进行推断。

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

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