패스잇
시스템 설계 · 심화

분산 시스템에서 리더(Leader)는 특정 역할을 수행하며 시스템의 일관성이나 가용성을 보장하는 데 중요합니다. 리더 선출(Leader Election) 알고리즘(예: Bully, Ring, Zookeeper/Etcd 기반)의 동작 원리를 설명하고, 실제 프로덕션 환경에서 리더 장애 발생 시 시스템의 가용성과 데이터 일관성을 빠르게 복구하기 위한 전략(예: 쿼럼(Quorum) 구성, Watchdog, 펜싱(Fencing))에 대해 구체적인 사례를 들어 설명해주세요.

힌트 · 리더 선출은 단일 장애 지점(SPOF)을 제거하고 시스템의 지속적인 운영을 보장합니다. 쿼럼, 펜싱, 헬스 체크, 타임아웃 설정 등을 통해 리더 장애 시 빠르고 안전하게 새로운 리더를 선출하고 서비스 연속성을 확보할 수 있습니다.

합의 알고리즘쿼럼Watchdog펜싱장애 감지

모범답안

분산 시스템에서 리더 선출은 시스템의 안정성과 가용성을 확보하는 데 매우 중요합니다. 리더는 특정 작업을 조정하고, 데이터 일관성을 유지하는 역할을 담당합니다.

리더 선출 알고리즘 중 하나인 Bully 알고리즘은 가장 높은 ID를 가진 노드가 리더가 되는 방식입니다. 노드가 리더가 다운되었다고 판단하면, 자신보다 높은 ID를 가진 노드들에게 선출 메시지를 보냅니다. 응답이 없으면 자신이 리더가 됩니다.

실제 프로덕션 환경에서 리더 장애 발생 시 가용성과 데이터 일관성을 빠르게 복구하기 위해 쿼럼 기반의 접근 방식을 사용할 수 있습니다. 예를 들어, ZooKeeper나 Etcd를 사용하여 쿼럼을 구성하고, 리더 노드에 문제가 생기면 쿼럼 내에서 새로운 리더를 선출합니다.

또한, Watchdog 프로세스를 통해 주기적으로 리더의 상태를 확인하고, 응답이 없으면 리더 장애로 판단하여 선출 과정을 시작할 수 있습니다. 펜싱은 이전 리더가 더 이상 시스템에 영향을 주지 못하도록 격리하는 기술입니다. 예를 들어, 이전 리더의 권한을 제거하거나 네트워크 접근을 차단하여 데이터 손상을 방지할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 분산 시스템 면접 질문

← 분산 시스템 면접 질문 전체 보기