Java 如何在rabbitmq中浏览队列而不使消息排队

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

我正在尝试获取具有特定关联id的消息,如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;
            }
        }