我知道我们可以使用basic.get()
从队列中获得一条消息。但是我不能使用它来检索队列中的所有消息(可能是10条)。我得到了一些使用basic.consume()
的答案,但不确定如何使用它并提取队列中的消息。有人可以帮我吗?
我是兔子迷的新手。
答案 0 :(得分:1)
检索消息的最佳方法是使用basic.consume()
,周围有几个示例。
但是我建议从这里开始: https://www.rabbitmq.com/tutorials/tutorial-one-java.html
这是使用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);