在生产环境中充分利用 RabbitMQ 需要遵循已建立的最佳实践——围绕可靠性、连接管理、队列设计、错误处理和运维。遵循这些实践会产生健壮、高效、可靠的消息传递。
可靠性实践
✓ DURABLE queues + PERSISTENT messages → survive broker restart (for important messages)
✓ MANUAL acks → ack only after successful processing (no loss on consumer failure)
✓ PUBLISHER CONFIRMS → know messages reached the broker (no loss on publish)
✓ DEAD LETTER QUEUES + retry limits → handle failures gracefully (no loss/blocking)
✓ QUORUM QUEUES for HA → survive node failures
✓ IDEMPOTENT consumers → handle redelivery duplicates safely
连接和资源管理
✓ REUSE connections; use CHANNELS (one connection per process/app, channels per task) —
don't open many connections (a common mistake)
✓ Set PREFETCH appropriately (fair dispatch, throughput balance)
✓ Keep messages SMALL; avoid huge queues; monitor memory/disk (alarms block publishing!)
✓ Handle reconnection gracefully (connections drop)
