Kafka로 투표 수 재구성하기는 Kafka 기본 클라이언트를 알고 있으며 보존된 이벤트로 유용한 비즈니스 결과를 재구성하려는 학습자를 위한 과정입니다. 재전송 이벤트와 새 표를 구분하고 기존 표시 애플리케이션의 읽기 진행 상황을 보존하면서 전시회 부스 집계를 다시 만듭니다.
두 가이드 실습에서 전역 식별 규칙을 만들고, 이어서 완전한 독립 네이티브 리플레이를 구축합니다. 한 챌린지는 같은 방식을 두 새 전시회 배치와 의도적인 충돌에 적용합니다. 각 단원은 독립적으로 시작합니다. 작성자가 예상하는 전체 과정 시간은 읽기와 일반적인 실수를 포함해 약 140–170분이며, 초보자에게 측정한 완료 시간은 아닙니다.
학습 내용
과정을 마치면 다음을 수행할 수 있습니다.
- Kafka 레코드의 파티션/오프셋과 전역 비즈니스 이벤트 ID를 구분합니다.
- 동일한 재전송은 한 번만 세되 다른 내용이 같아도 서로 다른 ID는 따로 유지합니다.
- 도착 순서대로 정답을 고르지 않고 같은 ID의 충돌하는 값을 거부합니다.
- 각 파티션의 고정된 경계를 확보하고 빈 파티션, 건너뛴 위치, 일시적으로 빈 폴링이 있어도 전체 유한 배치를 읽습니다.
- 물리 원본 레코드 전체 정보, 논리적인 표, 0표를 포함한 모든 부스의 집계가 담긴 전체 스냅샷을 기록하고 읽습니다.
- 원래 표시 애플리케이션 그룹을 되돌리지 않고 하나의 Python 프로그램을 다른 카탈로그와 파티션 분포에 재사용합니다.
추천 대상
이미 JSON 이벤트를 발행하고 소비할 수 있으며 독립적인 파생 뷰를 만들고 싶은 Kafka 학습자를 위한 과정입니다.
선수 지식: 기본 터미널 경로, Python 함수·반복문·딕셔너리와 JSON, Apache Kafka for Beginners에서 다룬 Kafka 키·파티션·오프셋·컨슈머 그룹 및 Python 프로듀서/컨슈머 작업이 필요합니다. 챌린지 전에 두 가이드 실습을 완료하세요.
학습 환경: 각 단원에는 Terminal을 갖춘 준비된 Linux 환경, 실제 로컬 Kafka broker, 설치된 Python 클라이언트, 합성 전시회 배치, 결과 읽기 도구가 제공됩니다. 외부 계정이나 로컬 설치는 필요 없습니다. 명령, 도구 레이블, 실행 출력은 영어입니다.
자주 묻는 질문
투표자 신원 확인이나 1인 1표 시스템인가요?
아닙니다. 제공된 비즈니스 규칙은 각 새 이벤트 ID를 허용된 한 표로 취급합니다. 여러분은 그 이벤트를 재구성하며, 실제 방문자가 누구인지 또는 다시 투표해도 되는지를 결정하지 않습니다.
연속 스트리밍이나 정확히 한 번 처리를 배우나요?
이 과정은 유한하고 고정된 로그를 처리합니다. 전체 재구성과 충돌 거부를 배우지만, 연속 스트림 복구, 시스템 간 원자성, 비정상 종료 시 데이터 영속성, 종단 간 정확히 한 번 동작은 보장하지 않습니다.
챌린지는 가이드 실습에서 어떻게 확장되나요?
부스 이름, 이벤트 관계, 파티션 수와 분포가 달라집니다. 학습한 동일한 Python 인터페이스와 리플레이 방식으로 두 유효 스냅샷을 만들고, 유용한 결과를 보존하면서 의도적인 충돌 배치를 거부해야 합니다.

