반응형

kafka consumer 4

Kafka Consumer #4 Offset Commit Strategy

개요 Kafka Consumer의 Commit 설정 및 전략에 대한 조사 Kafka Commit Config name Desc Default enable.auto.commit Auto-Commit 사용 여부 true auto.commit.interval.ms Auto-Commit 사용 시 Commit을 수행할 시간 (ms) 5000 AUTO-Commit enable.auto.commit : commit 여부 auto.commit.interval.ms : commit interval 시간 public void maybeAutoCommitOffsetsAsync(long now) { if (autoCommitEnabled) { nextAutoCommitTimer.update(now); if (nextAutoC..

개발 일지 2023.06.22

Kafka Consumer #3 Consume 로직

개요 Consum 과정은 polling(fetch) + commit offset으로 볼 수 있다. Broker로부터 Date를 가져와서 처리 후 처리된 offset만큼 commit하는 과정이다. - kafkaConsumer가 initialize 하면서 Broker로 부터 커밋된 offset 정보를 받아온다. - polling을 통해 Data를 받는다. - commit을 통해 offset을 올린다. 1. Fetch Offset 1. poll 호출을 받으면 우선 모든 구독된 토픽/파티션에 offset이 있는지 확인한다. 2. 만약 하나라도 offset 정보가 없다면 resfresh offset 로직이 동작한다. 3. ConsumerCoordinator는 OffsetFetch Reuqest를 만들고, futu..

개발 일지 2023.06.21

Kafka Consumer #2 Partition Assignor Strategy

개요 Kafka Consumer에 대한 세부 조사 #1 글에 이어서 Consumer Partition Assignor 파티션을 할당하기 위한 Interface consumer 설정의 partition.assingment.strategy 로 구현체를 세팅할 수 있다. ConsumerGroup의 정보와, Topic의 Partition 정보를 받아서, 배분한다. 5개 정도의 구현체가 있다. Custom한 전략도 구현 가능하다. Consumer Rebalancing 전략은 Broker의 Coordinator가 아닌 Consumer들이 정한다. 따라서 Rebalance에서 발생하는 모든 오퍼레이션은 Consumer (Leader)가 관장하여, coordinator는 leader가 오퍼레이션 하기 위한 브로커 역할..

개발 일지 2023.06.15

Kafka Consumer #1 Startup / Rebalance Flow

개요 Kafka Consumer에 대한 세부 조사 Kafka Client와 Kafka Broker의 rebalance flow 및 requset / response data 조사 Kafka Consumer Assignor 관련 조사 Kafka Consumer STW 관련 조사 Consumer Startup Group Coordinator 란 Kafka Broker에서 Consumer Group을 관리하기 위한 컴포넌트 기본적으로 Consumer Group 별로 존재 Cluster내 임의의 broker에 생성 됨 Consumer Group내 member의 변동을 감지하고 Rebalance를 관장 kafka topic을 이용해서 group의 metadata를 유지 총 3가지 단계로 coordinator와 c..

개발 일지 2023.06.14
반응형