Kafka를 이해하는 데 있어 Producer와 Consumer만큼이나 중요한 영역이 있다.
바로 Kafka가 데이터를 저장하는 방식이다.
Kafka는 단순한 “메시지 큐”라고 하기엔 그 구조가 놀라울 만큼 정교하고,
“분산 스토리지”라고 하기에는 생각보다 단순하고 빠르다.
Kafka의 본질은 결국 로그(append-only log) 이다.
이 로그가 파티션 안에서 어떻게 저장되고 관리되는지 이해하는 순간,
Kafka의 성능과 안정성이 어디서 오는지 명확하게 보인다.
이번 글에서는 Kafka 저장 구조의 중심을 이루는 다음 개념들을
천천히 풀어서 정리해본다.
각 요소가 어떤 의도로 설계됐는지 알면 Kafka 전체가 하나의 유기체처럼 보이기 시작한다.
Kafka 파티션은 사실 하나의 긴 로그 파일처럼 보이지만,
내부적으로는 여러 개의 Segment 파일들로 나누어 저장된다.