#kraft
글
-
Kafka 소스 파헤치기 2: 전체 지도 — 클라이언트, 브로커, 컨트롤러, 그리고 파티션
Kafka 소스를 처음 여는 중급 개발자를 위한 전체 지도입니다. kafka-server-start.sh 가 부르는 kafka.Kafka 의 main 에서 시작해 process.roles 에 따라 BrokerServer·ControllerServer·SharedServer 가 만들어지는 길, 브로커가 시작할 때 만드는 부품, 컨트롤러가 메타데이터 로그로 토픽·파티션·리더를 정하고 브로커에 퍼뜨리는 길, 클라이언트가 Metadata 응답으로 리더를 찾아가는 길, 모듈 의존 방향을 실제 소스와 직접 돌린 예제로 확인하고, 3~12편이 지도의 어디를 확대하는지 짚습니다.
-
Kafka 소스 파헤치기 10: KRaft와 메타데이터 — 컨트롤러는 클러스터를 어떻게 기억하나
토픽·파티션·리더·브로커 목록 같은 클러스터의 장부가 __cluster_metadata 라는 평범한 Kafka 로그에 레코드로 쌓이고, 컨트롤러들이 Raft 로 그 로그를 함께 지키는 과정을 소스로 따라갑니다. KafkaRaftClient 의 역할 상태(Prospective·Candidate·Leader·Follower)와 Vote·Fetch, 투표자 과반으로 정하는 하이 워터마크, 이벤트 스레드 하나로 도는 QuorumController 가 레코드를 만들고 커밋 전에 메모리에 먼저 적용했다가 되돌리는 SnapshotRegistry, 브로커가 레코드를 MetadataDelta·MetadataImage 로 바꿔 적용하는 MetadataLoader, 하트비트와 펜스를 kafka-dump-log·kafka-metadata-quorum·컨트롤러 3대 선거 예제로 확인합니다.