我已经设置了一个主题交换,消费者队列与“#.topic”绑定。我想根据前缀使用不同的确认策略。是否将完整的路由密钥发送给消费者?如果是这样,我该如何访问它? AMQP概念的答案可能就足够了,但涉及rabbitmq-c的答案将是理想的。
答案 0 :(得分:7)
即使您按照示例中的方式进行绑定,收到的消息也包含完整的路由密钥。这意味着您可以提取它以帮助您处理消息。不幸的是,我只知道如何用Java做到这一点,所以试着从那里进行推断。
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String routingKey = delivery.getEnvelope().getRoutingKey();
传递对象包含一个主体,它是有效负载,可以使用delivery.getBody()
和一个包含其他信息(如完整路由键)的信封对象进行检索。