RabbitMQ의 **고가용성(HA)**은 clustering(여러 노드)과 복제된 queue(mirrored 또는 quorum queue)를 포함하여, 시스템이 메시지를 잃지 않고 노드 실패를 견디게 합니다. HA를 이해하는 것은 신뢰성 있는 프로덕션 RabbitMQ에 중요합니다.
Clustering
RabbitMQ CLUSTER → 여러 RabbitMQ 노드가 하나의 논리적 broker로 함께 동작:
→ 노드들이 메타데이터(queue, exchange, binding, user)를 공유
→ connection과 부하를 노드 간에 분산
⚠️ 기본적으로 queue는 ONE 노드에 존재 → 그 노드가 실패하면 queue 사용 불가
(clustering만으로는 queue가 고가용이 되지 않음 → 복제 필요)
복제된 queue (HA용)
queue가 노드 실패를 견디게 하려면 노드 간에 REPLICATE:
QUORUM QUEUE (현대적, 권장) → 합의(Raft) 알고리즘으로 복제:
→ 데이터가 여러 노드에 복제됨; 과반수가 동의해야 함 → 일관성, durable, HA
→ 노드 실패 시 다른 복제본이 queue를 제공 → 메시지 손실 없음
MIRRORED QUEUE (클래식, 구식) → queue를 다른 노드로 미러링 (quorum queue로 대체되며 deprecated)
→ 복제된 queue가 노드 실패를 견딤 (HA의 핵심)
