Docker 运行 RabbitMQ
management 插件、15672 控制台。
25 分钟
Docker 运行 RabbitMQ
本地实验用 官方 rabbitmq:3-management 镜像 即可:5672 走 AMQP,15672 打开 Management UI。与 kafka-install 类似,Broker 独立容器,Spring Boot 应用另起进程联调。
学习目标
- 用 Docker 启动带 management 插件的 RabbitMQ
- 登录控制台创建用户、vhost、测试队列
- 配置 Spring Boot
spring.rabbitmq.*连接参数
核心内容
快速启动
docker run -d --name rmq-lab \
-p 5672:5672 -p 15672:15672 \
-e RABBITMQ_DEFAULT_USER=coderoadmap \
-e RABBITMQ_DEFAULT_PASS=lab123 \
rabbitmq:3-management
浏览器打开 http://localhost:15672,默认用户即上面环境变量。在 Queues 页可手动 Publish / Get Message 验证通路。
健康检查直觉
| 指标 | 含义 |
|---|---|
| Ready messages | 等待消费 |
| Unacked | 已投递未 ack |
| Publish rate | 入队速率 |
| Consumer utilisation | 消费者是否跟得上 |
队列 Ready 持续堆积 说明 Worker 不足或处理过慢;与 Kafka Consumer Lag(kafka-monitor)同类问题,排查方向是扩容消费者或优化处理逻辑。
Spring Boot 连接
spring:
rabbitmq:
host: localhost
port: 5672
username: coderoadmap
password: lab123
virtual-host: /
在 spring-boot-essentials 项目加 spring-boot-starter-amqp,Profile dev,rmq 启用;主站无 Broker 时不激活。Redis 连接配置见 redis-install,二者可并存。
常见踩坑
- 容器重启后 非 durable 队列 会消失;实验队列建议
durable=true - guest 用户默认只能本机连;Docker 里务必改默认账号
- Windows 防火墙拦截 5672 时,Spring 报
Connection refused
练习
- 启动容器并在 UI 创建
coderoadmap.ping队列,手动发一条消息 - 在 Connections 页观察 Spring 应用连上后的 Channel 数