아무리 예쁜 아키텍처도 장애 앞에서는 솔직해진다.

Kafka가 대규모 기업에서 사랑받는 이유는 단순히 빠르기 때문이 아니라, 고장나도 멈추지 않는 구조를 가지고 있기 때문이다.

이번 편에서는 다음 관점을 모두 묶어서 본다.

소프트웨어 레벨의 동작

브로커 내부 상태 변화

디스크·네트워크·PageCache 등 하드웨어 관점

클러스터 레벨에서의 의사결정

Kafka의 내고장성(fault-tolerance)은 작게 보면 한 파티션의 복제본이 어떻게 유지되는지, 크게 보면 클러스터 전체가 장애 상황을 어떻게 처리하는지를 말한다.


내고장성의 핵심: Replication과 ISR

Kafka의 데이터는 단 하나의 서버에만 저장되지 않는다. 하나의 Topic Partition은 “리더(replica)”를 기준으로 여러 개의 복제본을 가진다.

복제본 중에서도 특별한 집단이 하나 있다.

바로 ISR(In-Sync Replica).

ISR은 단순히 “복제 중인 애들”이 아니라

“리더의 가장 최신 오프셋까지 따라온, 장애 시 리더가 될 수 있는 바로 그 복제본 목록”이다.

ISR은 Kafka의 핵심 가치와 연결된다.

데이터 유실 방지

읽기/쓰기 지속성

장애 시 빠른 복구

ISR 구조