监控与管理
Management UI、队列深度告警直觉。
25 分钟
监控与管理
RabbitMQ 健康看 Broker 存活、队列深度、未 ack 堆积、消费速率。实验环境用 Management UI 足够;生产可对接 sb-actuator 与 Prometheus 插件。
学习目标
- 在 Management UI 读懂 Ready / Unacked / Publish rate
- 设置队列深度告警的直觉阈值
- 知道内存 / 磁盘告警与 flow control 现象
核心内容
Management UI 关键页
| 页面 | 看什么 |
|---|---|
| Overview | 节点内存、磁盘、连接数 |
| Queues | Ready、Unacked、Message rates |
| Connections / Channels | 泄漏、prefetch 异常 |
| Admin | 用户、vhost、权限 |
Ready 持续上升 → Consumer 跟不上或挂掉;Unacked 长期高 → 处理慢或忘记 ack。类比 Kafka Consumer Lag(kafka-monitor)。
告警直觉
Ready > 1000 持续 5min → 扩容 Worker 或查慢消费
Unacked ≈ prefetch × consumers 长期满 → 下游阻塞
Memory alarm → 队列堆积或大消息体
Disk alarm → 持久化消息占满磁盘
实验环境单节点即可;生产建议 镜像队列 或 Quorum Queue(3.8+)做 HA,超出本 track 范围。
Spring Actuator 集成
management.endpoints.web.exposure.include: health,metrics,rabbit
spring-boot-starter-amqp 注册 RabbitMQ health indicator;Profile 无 Broker 时 health 显示 DOWN 可接受。Redis 监控见 redis-test 延迟指标,栈内 缓存看 Redis、任务看 RabbitMQ。
日常运维命令
rabbitmqctl list_queues name messages_ready messages_unacknowledged
rabbitmqctl list_connections
Docker 内:docker exec rmq-lab rabbitmqctl ...
练习
- 故意停掉所有 Consumer,观察 Ready 如何上涨
- 找一条 Unacked 不下降的原因(Hint: 未 ack)
- 对比 Kafka
kafka-consumer-groups与 RabbitMQ Queues 页各解决什么问题