DevBook/카프카 핵심 가이드
-
[카프카 핵심 가이드] 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를 가진 다른 브로커 시작 시 에러 발생브로커와 주키퍼 간 연결이 끊어질 경우..
-
[카프카 핵심 가이드] CH4. 카프카 컨슈머: 카프카에서 데이터 읽기 (2)DevBook/카프카 핵심 가이드 2025. 2. 13. 20:00
4.6 오프셋과 커밋poll()을 호출할 때마다 카프카에 쓰여진 메시지 중 컨슈머 그룹에 속한 컨슈머들이 아직 읽지 않은 레코드가 리턴됨카프카의 고유한 특성 중 하나는 컨슈머로부터의 응답을 받는 방식이 아니라는 점대신, 컨슈머가 카프카를 사용해 각 파티션에서의 위치를 추적할 수 있게 함파티션에서의 현재 위치를 업데이트하는 작업을 '오프셋 커밋'이라고 함카프카는 레코드를 개별적으로 커밋하지 않음컨슈머는 파티션에서 성공적으로 처리해 낸 마지막 메시지를 커밋하여 그 앞의 모든 메시지들 역시 성공적으로 처리되었음을 암묵적으로 나타냄poll()이 리턴한 마지막 오프셋 바로 다음 오프셋을 커밋하는 것이 기본적인 작동!카프카의 __consumer_offsets 토픽에 각 파티션별로 커밋된 오프셋을 업데이트하는 메시지..