Skip to main content

Command Palette

Search for a command to run...

#distributed-systems

Articles tagged with #distributed-systems

  1. Kafka Consumer 내부 동작 — Fetcher, GroupCoordinator, 그리고 KIP-848 차세대 리밸런스 프로토콜

    카프카 컨슈머가 poll() 한 줄로 데이터를 끌어오는 동안 클라이언트와 브로커가 실제로 어떤 합의를 거치는지 정리합니다. 프로듀서 편(RecordAccumulator/Sender)과 짝을 이루는 컨슈머 측 내부 구조를 apache/kafka trunk 소스 기준으로 풀어내고, Kafka 4.0에서 GA, 4.1에서 기본값이 된 KIP-848 새 그룹 프로

    May 15, 202616 min read
  2. Kafka Broker Log Storage 내부 구조 — Segment, Index, Compaction

    카프카 브로커가 디스크 위에 메시지를 어떻게 쌓고, 어떻게 찾아 읽으며, 어떻게 비워 내는지를 apache/kafka trunk 소스 기준으로 정리합니다. Producer/Consumer 측 동작 원리는 별도 글에서 다뤘으니 이 글은 브로커 안에서 한 파티션이 디스크에 닿는 그 지점만 깊게 봅니다. 카프카 운영을 하면서 segment 파일 이름이 왜 저렇게

    May 15, 202614 min read
  3. Kafka Producer 내부 동작 — RecordAccumulator, Sender Thread, 그리고 Sticky Partitioner

    카프카 프로듀서의 send()는 왜 비동기이며, 그 사이에 어떤 자료구조와 스레드가 끼어 있는지를 OpenJDK 소스 기준으로 풀어냅니다. 카프카 입문 시리즈를 한 번이라도 본 분, batch.size와 linger.ms를 조정해 봤지만 두 값이 어디서 만나는지 모호한 분을 대상으로 합니다. 들어가며 카프카 프로듀서의 코드를 처음 보면 send()가 Fu

    May 15, 202613 min read