凉月如眉挂柳湾,越中山色镜中看
序
介绍一个RabbitMQ官方发布和消费消息的例子。官方例子
生产消息
public class RabbitProducer {
//队列名
private final static String QUEUE_NAME = "hello";
public static void main(String[] args) throws IOException, TimeoutException {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
//连接MQ
try (Connection connection = factory.newConnection();
Channel channel = connection.createChannel()) {
//定义队列
channel.queueDeclare(QUEUE_NAME, false, false, false, null);
String message = "Hello World!";
//发布消息
channel.basicPublish("", QUEUE_NAME, null, message.getBytes(StandardCharsets.UTF_8));
System.out.println(" [x] Sent '" + message + "'");
}
}
}
消息生产之后,我们可以在RabbitMQ的管理管理平台上可见。

点击队列名进去之后,点击Get Message(s)按钮,就可以看到消息。

消费消息
public class RabbitComsumer {
//队列名
private final static String QUEUE_NAME = "hello";
public static void main(String[] args) throws IOException, TimeoutException {
//连接MQ
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");
//接收消息
DeliverCallback deliverCallback = (consumerTag, delivery) -> {
String message = new String(delivery.getBody(), "UTF-8");
System.out.println(" [x] Received '" + message + "'");
};
//消费消息
channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> { });
}
}
消息被消费之后,管理平台上就看不到消息了。

本文通过一个实例,详细介绍了如何使用RabbitMQ进行消息的发布与消费。从生产者角度,展示了如何创建队列并发送消息;从消费者角度,讲解了如何接收并处理这些消息。通过本例,读者可以快速掌握RabbitMQ的基本操作。
1961

被折叠的 条评论
为什么被折叠?



