프로덕션에서 RabbitMQ를 잘 사용하는 것은 확립된 모범 사례 — 신뢰성, connection 관리, queue 설계, 에러 처리, 운영에 관한 — 를 따릅니다. 이를 따르면 견고하고 성능 있으며 신뢰성 있는 메시징이 만들어집니다.
신뢰성 관행
✓ DURABLE queue + PERSISTENT 메시지 → broker 재시작 견딤 (중요한 메시지에)
✓ MANUAL ack → 성공적으로 처리한 후에만 ack (consumer 실패 시 손실 없음)
✓ PUBLISHER CONFIRM → 메시지가 broker에 도달했음을 앎 (publish 시 손실 없음)
✓ DEAD LETTER QUEUE + 재시도 제한 → 실패를 우아하게 처리 (손실/막힘 없음)
✓ HA에 QUORUM QUEUE → 노드 실패 견딤
✓ 멱등(IDEMPOTENT) consumer → 재전달 중복을 안전하게 처리
connection과 리소스 관리
✓ connection 재사용; CHANNEL 사용 (앱/프로세스당 connection 하나, 작업당 channel) —
많은 connection을 열지 말 것 (흔한 실수)
✓ PREFETCH를 적절히 설정 (공정한 dispatch, 처리량 균형)
✓ 메시지를 작게 유지; 거대한 queue 회피; 메모리/디스크 모니터링 (alarm이 publishing을 막음!)
✓ 재연결을 우아하게 처리 (connection이 끊김)
