
백엔드
RabbitMQ Classic Queue 메모리 장애와 Quorum Queue 전환기
두줄요약
대량 쿠폰 발급 중 RabbitMQ Classic Queue 메모리 장애와 동기화 실패 원인을 분석했습니다. 긴급 복구 후 버전 업그레이드와 Quorum Queue 전환으로 안정성을 높였습니다.
문제 상황
- 1,500만 건 대량 쿠폰 발급 중 RabbitMQ 클러스터 메모리 과다 점유와 unsynchronized 상태 발생
- 메시지 적재 속도가 처리 속도를 앞지르며 소비 중단, 고객 문의와 매출 손실로 긴급 대응 필요
원인 분석
- 대량 발급, 동시 발급·사용 처리, 평상시 트래픽이 겹치며 Queue 메시지 급증
- Classic Mirrored Queue의 미러 동기화 구조에서 메모리 부족 시 동기화 실패와 out of sync 상태 발생
- 브로커 재시작 과정에서 메모리 급증과 복제본 동기화 타임아웃이 재현됨
해결 방법
- 긴급 복구용으로 신규 RabbitMQ 브로커를 생성하고 애플리케이션 접속 정보를 전환해 서비스 우선 복구
- RabbitMQ 버전을 업그레이드해 메모리 알람과 미러링 동기화 안정성을 개선
- 장기적으로 Classic Mirrored Queue를 Quorum Queue로 전환해 Raft 기반 합의와 자동 복구 체계로 개선
