首先! RabbitMQ 需要 Erlang 语言,所以想要在电脑上运行 RabbitMQ,就需要安装 Erlang 语言的环境,所以就有一个很重要的问题,版本对应问题!参看官方文档,版本选的对,报错少一半
https://www.rabbitmq.com/docs/which-erlang
确定好版本之后,下面开始正式安装
1. 在 Windows 上安装 RabbitMQ
RabbitMQ 需要 Erlang 运行时环境,因此需要先安装 Erlang,再安装 RabbitMQ。
1.1 安装 Erlang
下载 Erlang 安装包:
- 官网下载:Erlang Downloads
安装完成后,记住bin目录的位置,在环境变量的PATH中加上这个路径就好了,不用像JAVA一样弄一个JAVA_HOME,直接加上就好了,然后控制台上面输入:erl -version 检查是否成功:
erl -version
如果显示版本号,说明安装成功。
1.2 安装 RabbitMQ
- 下载 RabbitMQ Windows 安装包:
- 官网下载:RabbitMQ Installer
- 选择 Windows installer 版本。
- 运行安装程序,默认选项即可。
- 安装完成后,RabbitMQ 会作为 Windows 服务自动启动。
1.3 启用 RabbitMQ 管理界面
RabbitMQ 默认不带 Web 管理界面,需要手动启用(从这里开始,最好使用管理员身份运行cmd):
# 进入 RabbitMQ 安装目录(默认:C:\Program Files\RabbitMQ Server\rabbitmq_server-{version}\sbin)
cd "你安装的位置\sbin"
# 启用管理插件
rabbitmq-plugins enable rabbitmq_management
访问管理界面(访问不成功没关系,重启就好了):
- 打开浏览器访问
http://localhost:15672
- 默认用户名/密码:
guest
/guest
1.4 常用 RabbitMQ 命令
# 启动 RabbitMQ 服务(如果未自动启动)
net start RabbitMQ
# 停止 RabbitMQ 服务
net stop RabbitMQ
2. 在 Spring Boot 中使用 RabbitMQ
Spring Boot 提供了 spring-boot-starter-amqp
来简化 RabbitMQ 集成。
2.1 添加依赖
在 pom.xml
中添加:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2.2 配置 RabbitMQ
在 application.yml
中配置:
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: / # 默认虚拟主机
2.3 发送消息(Producer)
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
@Component
public class RabbitMQProducer {
private final RabbitTemplate rabbitTemplate;
public RabbitMQProducer(RabbitTemplate rabbitTemplate) {
this.rabbitTemplate = rabbitTemplate;
}
// 定义队列
@Bean
public Queue myQueue() {
return new Queue("myQueue", true); // true 表示持久化
}
// 发送消息
public void sendMessage(String message) {
rabbitTemplate.convertAndSend("myQueue", message);
System.out.println("发送消息: " + message);
}
}
2.4 接收消息(Consumer)
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
@Component
public class RabbitMQConsumer {
@RabbitListener(queues = "myQueue")
public void receiveMessage(String message) {
System.out.println("收到消息: " + message);
}
}
2.5 测试
在 Controller 中测试:
@RestController
public class TestController {
private final RabbitMQProducer producer;
public TestController(RabbitMQProducer producer) {
this.producer = producer;
}
@GetMapping("/send")
public String sendMessage(@RequestParam String msg) {
producer.sendMessage(msg);
return "消息已发送: " + msg;
}
}
访问 http://localhost:8080/send?msg=HelloRabbitMQ
,控制台会打印:
发送消息: HelloRabbitMQ
收到消息: HelloRabbitMQ
现在你的 Spring Boot 应用已经可以生产和消费 RabbitMQ 消息了!