2025 06 25
2025-06-25
RabbitMQ 3.x -> 4.x
- 3.x -> 4.x 제거사항
- Classic Queue Mirroring 제거
- 성능저하, 관리 복잡성, 예측 불가한 장애 복구 등
- Classic Queue 금지
- 단일 노드 메시지 저장하는데, 안정성/확정성/장애 복구 측면에서 사용 금지
- 3.x -> 4.x 변경사항
Quorom Queue: Raft consensus 알고리즘 기반으로 고가용성 큐를 디폴트로 사용
- 여러 노드에 분산 저장 -> 장애 시에도 데이터 손실 없이 복구 가능
- 데이터 일관성이 classic queue보다 좋음
at-least-once dead-lettering 지원
- 최소 한번 이상 처리된 후에서 실패한 메시지를 DLQ로 보낼 수 있음
- 프로토콜 자체의 호환성은 유지되기에, 이관의 문제는 크게 없음.
- Quorum Queue
- Raft 컨센서스 알고리즘에 기반을 둔 지속 가능/복제된 형태의 현대적 queue 타입
- 고가용성/장애 대비 복제가 필요한 환경에서 디폴트로 고려
- 데이터 안정성 + 신뢰할 수 있는 리더 선출 => classic queue의 해결책
- at-least-once dead-lettering 사용 가능
- Virtual host (vhost)
- RabbitMQ 내의 하나의 서버(브로커) 내에서 여러개의 논리적으로 완전히 분리된 메시징 환경 제공
- vhost는 독립적으로 Queue, Exchange, Binding, 사용자 권한 등 관리. 각 vhost 별 리소스/권한 분리됨
- 특징
- 논리적 분리: 각자의 리소스를 충돌없이 사용할 수 있게 해줌. queue/exchange/binding 등이 타 vhost와 영향 X
- 접근제어 및 보안: vhost 별로 리소스 권한 부여 가능
- 환경/도메인 분리: vhost 분리해 오버라이드 충돌 방지 가능.
- 이슈 격리: 타 vhost에 이슈 전파 안됨. 논리적으로 제한 가능
- 동작 방식
- 생성/관리: 콘솔에서 vhost 추가 가능
- 접속: RabbitMQ 연결시 접속할 vhost 명시 가능. 권한 있어야만 연결 허용.
- 유의점: vhost 별 queue/exchange 직접 연결 X