使用java从单个rabbit MQ队列检索多条消息
我知道我们可以使用使用java从单个rabbit MQ队列检索多条消息,java,rabbitmq,message-queue,Java,Rabbitmq,Message Queue,我知道我们可以使用basic.get()从队列中获取一条消息。但是我无法使用它检索队列中的所有消息(可能是10条)。我得到了一些使用basic.consume()的答案,但不确定如何使用它并获取队列中的消息。谁能帮帮我吗 我不熟悉rabbit mq。检索消息的最佳方法是使用basic.consume(),这里有几个示例 但我建议从这里开始: 这是使用basic.consume使用消息的代码: String QUEUE_NAME= "hello" ConnectionFactor
basic.get()
从队列中获取一条消息。但是我无法使用它检索队列中的所有消息(可能是10条)。我得到了一些使用basic.consume()
的答案,但不确定如何使用它并获取队列中的消息。谁能帮帮我吗
我不熟悉rabbit mq。检索消息的最佳方法是使用
basic.consume()
,这里有几个示例
但我建议从这里开始:
这是使用basic.consume
使用消息的代码:
String QUEUE_NAME= "hello"
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
System.out.println(" [*] Waiting for messages. To exit press CTRL+C");
Consumer consumer = new DefaultConsumer(channel) {
@Override
public void handleDelivery(String consumerTag, Envelope envelope,
AMQP.BasicProperties properties, byte[] body)
throws IOException {
String message = new String(body, "UTF-8");
System.out.println(" [x] Received '" + message + "'");
}
};
channel.basicConsume(QUEUE_NAME, true, consumer);
请看@Gabriele的回复!不要使用
basic。获取!您还应该阅读有关QoS/预取的内容。@LukeBakken-使用basic.get
-这是一种拉对推的方法。许多人找到了一种拉动式的方法来更好地匹配他们的消费逻辑。