Kafka 클러스터 장애 대응 경험을 중심으로 고가용성 유지 방법을 정리한 결
인턴 때 메시지 브로커 운영을 보조하는 역할로 실제 운영 중인 클러스터를 처음 접했습니다. 어느 날 브로커 노드 1개가 갑자기 다운되는 상황이 생겼습니다. 선임과 함께 대응했는데, 저는 옆에서 로그를 보며 어느 파티션이 리더를 잃었는지 추적하는 역할을 맡았습니다. 그 과정에서 리플리케이션 팩터가 2로 설정된 토픽은 복구가 더뎠고, 팩터가 3인 토픽은 자동으로 빠르게 리더가 바뀌었습니다. 그때부터 저는 리플리케이션 팩터와 `min.insync.replicas` 설정이 고가용성의 핵심이라는 걸 실감했습니다. 직접 만든 사이드 프로젝트에선 3개 브로커를 로컬에서 도커로 띄워 노드를 강제로 내리는 실험을 해봤습니다. 팩터를 1로 두면 데이터가 유실됐고, 3으로 두면 클라이언트가 재연결하는 동안 잠깐 지연만 생기고 정상 동작했습니다. 글로만 배운 것과 직접 실험한 것이 이렇게 다른지 몰랐습니다.