我正在尝试获取具有特定相关 ID 的消息,如 rabbitmq 文档中所述。但是我看到不相关的消息被取消了。我不希望它发生。在收到消息并知道这不是我要找的消息后,如何告诉 rabbitmq 不要出队。请帮助我。
`
.
.
replyQueueName = channel.queueDeclare().getQueue();
consumer = new QueueingConsumer(channel);
channel.basicConsume(replyQueueName, false, consumer);
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
System.out.println(delivery.getProperties().getCorrelationId());
if (delivery.getProperties().getCorrelationId().equals(corrId)) {
response = new String(delivery.getBody());
break;
}
}
`
最佳答案
你不能随心所欲地做你想做的事。 “选择性消费者”是 RabbitMQ 中的一种反模式。
相反,您应该设计您的 RabbitMQ 设置,以便将您的消息路由到只包含目标消费者消息的队列。
我在这里写了更多相关内容:http://derickbailey.com/2015/07/22/airport-baggage-claims-selective-consumers-and-rabbitmq-anti-patterns/
关于java - 如何在不使消息出队的情况下浏览rabbitmq中的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35323350/