RabbitMQ 集群常见“坑”全攻略:从根本原因到救命排查技巧
RabbitMQ 集群是保障消息队列 高可用 和 高性能 的核心架构,但在实际部署和运维过程中,往往会踩到各种“坑”。
本文将系统梳理这些常见问题、根本原因,并总结关键的排查和修复技巧,帮助你在生产环境中更好地稳定 RabbitMQ 集群。
一、RabbitMQ 集群常见“坑”与根本原因
RabbitMQ 集群故障大多可以归纳为 网络、磁盘、配置、资源 四大类问题。
1. 网络分区(Network Partition) —— 最致命的问题
- 现象:
- rabbitmqctl cluster_status 出现 partitions。
- 管理 UI 出现红色警告 “Network partition detected”。
- 节点之间失联,各自为政,可能导致 消息重复消费或丢失。
- 根本原因:
- 防火墙/安全组未放行 4369(epmd)、25672(Erlang 通信)。
- 网络延迟高、丢包严重或设备故障。
- 节点负载过高导致心跳延迟。
2. 磁盘空间不足(Disk Alarm)
- 现象:生产者被阻塞,publish 失败,管理 UI 显示连接被阻塞。
- 根本原因:
- 队列消息堆积未消费。
- 日志未清理占满磁盘。
- 磁盘容