一、安装和配置
RabbitMQ是基于Erlang语言开发的,在安装RabbitMQ之前需要先安装Erlang/OTP运行环境。可以从Erlang官网下载安装包并按照提示进行安装。
下载最新版本的RabbitMQ安装包并按照提示进行安装。安装完成后,RabbitMQ会自动启动,并通过默认端口5672提供服务。
RabbitMQ提供了一个Web管理界面,可以方便地查看和管理队列、交换机、连接等信息。要使用该功能,需要先安装并启用管理插件。
bash复制代码
# 启用管理插件 sudo rabbitmq-plugins enable rabbitmq_management
然后就可以通过http://localhost:15672访问Web管理界面了,默认用户名和密码均为“guest”。
以下是Java语言实现的简单生产者和消费者代码,用于发送和接收一条消息。
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;
public class Producer {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
// 创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
// 创建连接和通道
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("UTF-8"));
System.out.println(" [x] Sent '" + message + "'");
}
}
}
import com.rabbitmq.client.*;
import java.io.IOException;
public class Consumer {
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws Exception {
// 创建连接工厂
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
// 创建连接和通道
try (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 -> {});
}
}
}