Java 如何在rabbitmq中浏览队列而不使消息排队
我正在尝试获取具有特定关联id的消息,如rabbitmq文档中所述。然而,我看到不相关的消息被排了队。我不希望它发生。我如何告诉rabbitmq在收到消息并知道这不是我要找的那个消息后不要退出队列。请帮帮我 `Java 如何在rabbitmq中浏览队列而不使消息排队,java,rabbitmq,message-queue,Java,Rabbitmq,Message Queue,我正在尝试获取具有特定关联id的消息,如rabbitmq文档中所述。然而,我看到不相关的消息被排了队。我不希望它发生。我如何告诉rabbitmq在收到消息并知道这不是我要找的那个消息后不要退出队列。请帮帮我 ` `如果您能够承受邮件顺序的丢失,则可以使用重新排队机制 尝试关闭自动确认 否则,您必须重新设计应用程序,以注入头或路由键来路由到特定队列 你不能按你想的方式做你想做的事。“选择性消费者”是RabbitMQ中的反模式 相反,您应该设计RabbitMQ设置,以便将消息路由到仅包含预期使用者消
`如果您能够承受邮件顺序的丢失,则可以使用重新排队机制 尝试关闭自动确认
否则,您必须重新设计应用程序,以注入头或路由键来路由到特定队列 你不能按你想的方式做你想做的事。“选择性消费者”是RabbitMQ中的反模式 相反,您应该设计RabbitMQ设置,以便将消息路由到仅包含预期使用者消息的队列
我在这里写了更多关于这方面的内容:Azure服务总线和WSO2具有队列浏览功能。我很惊讶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;
}
}