Study
-
[카프카 핵심 가이드] CH4. 카프카 컨슈머: 카프카에서 데이터 읽기 (1)Study/카프카 핵심 가이드 2025. 2. 11. 21:24
4.1 카프카 컨슈머: 개념4.1.1 컨슈머와 컨슈머 그룹토픽의 메시지를 처리하기 위해서는 KafkaConsumer 객체를 생성하고, 대상 토픽을 구독하고, 메시지를 수신하여 처리해야 한다.카프카 컨슈머는 컨슈머 그룹의 일부로서 동작한다.각각의 컨슈머는 동일한 토픽에서 서로 다른 파티션을 할당받아 파티션의 메시지를 처리함따라서 컨슈머 그룹에 컨슈머를 추가하는 것은 카프카 토픽에서 읽어오는 데이터 양을 확장하는 주된 방법이다.컨슈머를 추가하여 단위 컨슈머가 처리하는 파티션과 메시지의 수를 분산시키는 것이 일반적인 규모 확장 방식정리하자면,1개 이상의 토픽에 대해 모든 메시지를 받아야 하는 서비스별로 새로운 컨슈머 그룹을 생성한다.컨슈머 그룹에 컨슈머를 추가하여 토픽에서 메시지를 읽거나 처리하는 규모를 확장..
-
[카프카 핵심 가이드] 추가 - 카프카 컨슈머 리밸런스Study/카프카 핵심 가이드 2025. 2. 11. 01:31
✅ two-phase rebalance protocol (리밸런스의 기본 동작 정의)컨슈머 그룹 내 한 개의 컨슈머가 그룹 리더로 선정된다. (가장 먼저 등록된 컨슈머)리밸런스는 두 단계로 구성된다.1단계 : JoinGroup그룹 코디네이터는 컨슈머가 그룹에 조인하기를 기다린다.컨슈머가 그룹 코디네이터에게 JoinGroup 요청을 보낸다.인코딩한 구독 정보 전달 (구독 토픽, 클라이언트가 정의한 유저 데이터)그룹 코디네이터는 그룹 리더에게 JoinGroup 응답으로 컨슈머들의 구독 정보를 보낸다.2단계 : SyncGroup그룹 리더는 구독 정보들을 디코딩하고, 각 컨슈머에게 파티션을 할당하여 해당 정보를 인코딩한다.해당 정보는 그룹 리더가 그룹 코디네이터에게 SyncGroup 요청을 보낼 때 함께 전송된..
-
[카프카 핵심 가이드] 3.6 파티셔너 (카프카 3.9 버전 반영)Study/카프카 핵심 가이드 2025. 2. 6. 01:03
✅ 카프카 버전 3.3 이전에는?카프카 3.3 버전부터 파티셔너 관련 default configuration이 변경되었고, 새로운 configuration이 추가되었음아래 내용은 카프카 버전 3.3 이전의 파티셔너 내용임 ProducerRecord의 키값 역할 2가지메시지에 value와 함께 저장되는 추가적인 정보토픽에 속한 여러 개의 파티션 중 해당 메시지가 저장될 파티션을 결정짓는 기준점기본 파티셔너 사용할 경우 같은 키 값을 가진 모든 메시지는 같은 파티션에 저장됨 파티셔너 설정partitioner.class 설정 사용 (https://kafka.apache.org/32/documentation.html#producerconfigs_partitioner.class)DefaultPartitioner메..
-
[카프카 핵심 가이드] CH3. 카프카 프로듀서: 카프카에 메시지 쓰기Study/카프카 핵심 가이드 2025. 2. 4. 01:34
배울 내용프로듀서의 디자인과 주요 요소KafkaProducer와 ProducerRecord 객체를 어떻게 생성하는지, 어떻게 카프카에 레코드를 전송하는지, 카프카가 리턴할 수 있는 에러를 어떻게 처리하는지프로듀서의 작동을 제어하기 위해 사용되는 가장 중요한 설정 옵션들파티션 할당 방식을 정의하는 파티셔너와 객체의 직렬화 방식을 정의하는 시리얼라이저에는 어떠한 것들이 있는지, 이들을 작성하기 위해 어떻게 해야 하는지 3.1 프로듀서 개요프로듀서 API는 매우 단순하지만, 내부적으로는 많은 작업들이 이루어진다.1. ProducerRecord 객체 생성topic, value는 필수 / partition, key는 선택2. 객체 직렬화ProducerRecord 전송 API 호출 시 프로듀서는 키와 값 객체가 네..