Kafka에서는 배송팀이 읽은 record를, 분석팀이 나중에 다시 읽을 수 있어요.메시지는 누군가 읽으면 사라지는 종이 쪽지 같다고 생각하기 쉽죠? 근데 Kafka를 그렇게만 보면
topic, partition, offset, consumer group이 왜 필요한지 계속 따로 외우게 돼요. Kafka에서는 메시지를 건네고 없애는 장면보다, 이어지는 기록을 남기고 각 독자가 자기 위치에서 읽는 장면을 먼저 잡는 편이 훨씬 자연스러워요.
이 페이지는 Kafka의 설정 목록을 모아둔 곳이 아니에요. Producer가 보낸 record 하나가 어디에 놓이고, consumer가 무엇을 기억하며 읽는지 차근차근 연결하는 읽기 가이드예요.
공개된 개념 설명은 Apache Kafka 4.3 문서, 실습과 CLI 명령은 Apache Kafka 4.3.1을 기준으로 해요. 각 실습 글에는 image, Java, 운영체제처럼 결과에 영향을 주는 버전을 따로 적습니다.
메시징 안내부터 읽기
메시지 브로커가 낯설다면 메시징의 공통 그림부터 읽어보세요.
먼저 이 한 장면을 기억해보세요
온라인 쇼핑몰에서 결제가 끝났어요. 배송 서비스는 지금 바로 그 사실을 읽고 싶고, 정산 서비스는 밤에 모아서 읽고 싶어요. 나중에 새로 생긴 분석 서비스도 지난 결제 기록부터 살펴보고 싶고요. 세 팀은 같은 기록을 읽지만 읽는 시점과 속도는 달라도 돼요. 한 팀이 읽었다는 이유만으로 다른 팀의 읽을 기회가 바로 사라지지 않는다는 점이 Kafka를 이해하는 첫 단서예요.지금 읽을 수 있는 글
1
Kafka가 왜 필요한지부터 잡아요
Kafka는 왜 기록할까요?에서 직접 호출과 전형적인 작업 큐만으로 풀기 어려운 시간 분리, 여러 독자의 독립적인 읽기, 과거 기록 재사용 문제를 따라가요.
2
Ubuntu VM 두 대로 실습 환경을 고정해요
Kafka 실습용 Ubuntu VM을 준비해볼까요?에서
virt-install과 cloud-init으로 Docker용 VM과 직접 설치용 VM을 만들고 virsh로 snapshot을 남겨요.3
첫 record를 직접 보내봐요
로컬 Kafka에 첫 record를 남겨볼까요?에서 Apache Kafka 4.3.1을 실행하고 topic 생성, produce, consume, broker 재시작 뒤 보존까지 확인해요.
4
Key와 partition별 순서를 연결해요
Topic은 왜 partition으로 나뉠까요?에서 두 주문의 record를 두 partition에 보내며 offset과 ordering의 정확한 범위를 살펴봐요.
5
Consumer group의 위치를 따라가요
Consumer group의 읽기 위치에서 partition 소유권, committed offset, lag, 처리와 commit의 경계를 연결해요.
다섯 글은 이런 흐름으로 이어져요
Kafka 글은 record 하나가 이동하는 순서를 따라가며 깊어져요.1
왜 기록을 남기는지 이해해요
먼저 서비스끼리 바로 호출할 때 생기는 시간 결합과 실패 전파를 살펴봐요. Kafka가 중간에 record를 남기면 생산자와 소비자가 같은 순간에 살아 있지 않아도 되는 이유를 잡아요.
2
반복 가능한 실습 환경을 만들어요
Ubuntu VM에 Kafka를 준비하고 snapshot으로 시작 상태를 보존해요. 이후 실습이 꼬여도 같은 기준점으로 돌아와 다시 확인할 수 있어요.
3
첫 record를 보내고 받아요
producer가 record를 만들고 broker에 전달한 뒤 consumer가 읽는 경로를 직접 확인해요. 이 과정에서 key, value, offset이 로그에 어떻게 남는지 처음 만나요.
4
topic과 partition을 나눠 봐요
record가 어느 topic과 partition에 기록되는지 살펴봐요. key가 partition 선택과 같은 key의 순서에 어떤 영향을 주는지도 연결해요.
5
consumer group과 commit을 추적해요
여러 consumer가 partition을 나눠 읽는 방식과 committed offset의 의미를 확인해요. 재시작했을 때 어디서 다시 읽는지도 이 단계에서 설명해요.
6
실패 뒤의 복구 경계를 정해요
retention, retry, 중복 처리 가능성을 함께 봐요. 메시지를 남기는 것만으로 복구가 끝나지 않고, 소비자가 실패를 견디는 규칙도 필요하다는 데까지 이어가요.
자, 정리해볼까요?
- Kafka는 메시지를 단순히 전달하고 지우는 장면보다 partition에 기록하고 위치를 따라 읽는 장면부터 잡아요.
- Producer, record, topic, partition, consumer group, offset을 하나의 흐름으로 연결해요.
- 기본 구조를 익힌 뒤에 순서, 중복, retry, lag, 장애 복구 같은 운영 문제로 내려가요.
- 지금 공개된 다섯 글을 위 순서로 읽으면 반복 가능한 VM에서 record 하나의 저장 위치와 group의 읽기 위치까지 연결할 수 있어요.
처음부터 읽기
Kafka가 왜 전달보다 기록을 중심에 두는지부터 시작해요.
실습 환경 준비하기
개념이 익숙하다면 Docker와 Ubuntu 직접 설치용 VM부터 준비해요.