DevBook/카프카 핵심 가이드
-
[카프카] 카프카는 어떻게 고성능을 유지할까?DevBook/카프카 핵심 가이드 2025. 3. 24. 23:11
카프카는 디스크 기반 보존을 사용해 데이터 유실 위험을 줄인다.그렇다면 카프카는 디스크 기반 보존을 하는데 어떻게 고성능을 유지할까? 신규 컨슈머가 추가되었을 때 이전 오프셋부터 데이터를 불러오는 경우도 있다.이때 캐시에 데이터가 없을 수 있는데 이런 경우에도 어떻게 고성능을 낼 수 있을까? 1. append-only와 sequential write카프카는 로그 형식으로 데이터를 기록하는데, 이때 append-only로 파일의 끝에 연속적으로 쓴다.카프카는 파티션을 세그먼트 단위로 나누고 세그먼트는 디렉토리 내 하나의 파일 형식 - 참고즉, 파일 중간을 수정하거나 임의 위치에 쓰지 않으므로, 항상 마지막에 순차적으로 write함디스크에 저장할 때 가능한 연속적인 블록에 저장한다. 이를 통해 순차 I/O가..
-
[카프카 핵심 가이드] CH7. 신뢰성 있는 데이터 전달DevBook/카프카 핵심 가이드 2025. 3. 9. 15:44
✅ 주요 내용신뢰성 보장의 의미카프카의 복제 메커니즘과 이것이 시스템의 신뢰성에 어떻게 영향을 미치는지서로 다른 활용 사례에 대해 카프카의 브로커와 토픽들을 어떻게 설정해줘야 하는지서로 다른 신뢰성 상황에서 클라이언트들(프로듀서와 컨슈머)을 어떻게 사용해야 하는지시스템의 신뢰성을 검증하는 방법 브로커는 메시지 저장, 프로듀서는 메시지 전송, 컨슈머는 메시지 수신(오프셋 커밋)에 대한 책임을 가지고 있다.따라서 각 관점에서 어떤 설정을 통해 신뢰성을 높일 수 있는지 생각하면 된다. 7.1 신뢰성 보장카프카가 제공하는 보장을 알면, 실패 상황에서 시스템이 어떻게 작동하는지 알 수 있음카프카는 무엇을 보장할까?파티션 안의 메시지들 간에 순서를 보장한다.만약 메시지 A 다음에 B가 쓰여졌고, 동일한 프로듀서가 ..
-
[카프카 핵심 가이드] CH6. 카프카 내부 메커니즘 - 물리적 저장소DevBook/카프카 핵심 가이드 2025. 3. 8. 00:04
6.5 물리적 저장소카프카의 기본 저장 단위는 '파티션 레플리카'하나의 파티션은 서로 다른 브로커들 사이에 분리될 수 없고, 같은 브로커의 서로 다른 디스크에 분할 저장될 수 없음따라서 파티션의 크기는 특정 마운트 지점에 사용 가능한 공간의 제한을 받음카프카를 설정할 때 운영자가 파티션들이 저장될 디렉토리 목록을 정의함log.dirs 매개변수에 지정카프카가 사용할 각 마운트 지점별로 하나의 디렉토리를 포함하도록 설정하는 것이 일반적 추가) log.dirs더보기log.dirs카프카는 모든 메시지를 로그 세그먼트(log segment) 단위로 묶어 log.dir 설정에 지정된 디스크 디렉토리에 저장함다수의 디렉토리를 지정하고자 할 때, log.dirs 사용하는 것이 좋음 (log.dirs가 설정되어 있지 않..
-
[카프카 핵심 가이드] CH6. 카프카 내부 메커니즘DevBook/카프카 핵심 가이드 2025. 2. 19. 00:12
✅ 주요 내용카프카 컨트롤러카프카에서 복제(replication)가 작동하는 방식카프카가 프로듀서와 컨슈머의 요청을 처리하는 방식카프카가 저장을 처리하는 방식 (파일 형식, 인덱스 등) 6.1 클러스터 멤버십카프카는 현재 클러스터의 멤버인 브로커들의 목록을 유지하기 위해 아파치 주키퍼를 사용함각 브로커는 고유한 식별자를 갖음(브로커 설정 파일에 정의하거나 자동으로 생성)주키퍼의 브로커 관리 방식브로커 프로세스는 시작될 때마다 주키퍼에 Ephemeral(휘발성) 노드의 형태로 ID를 등록함카프카 브로커들과 다른 툴들은 브로커가 등록되는 주키퍼의 /brokers/ids 경로를 구독해 브로커가 추가/제거되었을 때 알림 수신동일한 ID를 가진 다른 브로커 시작 시 에러 발생브로커와 주키퍼 간 연결이 끊어질 경우..