c - AMQP - 消费者是否有权访问路由 key ?

标签 c rabbitmq amqp

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

最佳答案

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

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

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

关于c - AMQP - 消费者是否有权访问路由 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455600/

相关文章:

c - 删除链表中的第一个节点

django - RabbitMQ 和 Django-Celery 运行时出现问题 : Target Machine actively refused connection

python - 如何在 RabbitMQ/pika 中实现优先级队列

jms - Amazon MQ 将 AMQP 消息转换为 JMS

c - 为什么服务器套接字给出的端口号与绑定(bind)端口号不同?

c - 如何使此功能更加模块化并用于结构的多个成员?

rabbitmq - 如何在 DAG 中使用 Apache Apex Malhar RabbitMQ 运算符

rabbitmq - RabbitMQ 中的漏洞 : disable cleartext authentication mechanisms in the amqp configuration

node.js - RabbitMQ 与重新连接

c - 如何预加载共享库并使用在同一包装函数中使用 malloc 的函数来包装 malloc?