반응형

2023/06 6

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

#2 EasyCalendar Flutter 구현

짤막 흥보: 호구홍시 조대봉 (인스타 툰) 개요 Flutter로 구현한 Client Web 관련 리뷰 개발 중 이슈사항 리뷰 Project Structure main: main class main_state_page: 시작페이지, 로그인 체크 calendar_page: 일정 확인 / 등록 페이지 main_exception: custom exception network_client: REST 요청 관련 모듈 리뷰 1. main class를 분리하는 의미가 없는듯하다. 2. main_state_page의 의미가 많이 퇴색되었다. Google 인증도 main_state_page에 넣었어야 했다. 3. 구현해 보니, 각 page에는 widget 생성 관련 로직만 넣고, 비즈니스? 로직은 외부로 빼는 것이 좋을 ..

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

Expand Kafka Cluster

개요 Kafka Cluster를 확장할 시 발생하는 이펙트에 대한 조사 Broker Data Reassignment Strategy 단순 Broker Add 기본적으로 Broker가 추가되는 경우 기존 topic 및 Data에 대해서는 아무런 작업을 진행하지 않는다. 앞으로 추가되는 topic에 대해서 신규 브로커가 포함된 형태로 Cluster가 동작한다. Migrate data to new Broker 수동적으로 트리거링하여 기존 데이터를 새 Broker에 마이그레이션 할 수 있다. 시스템 중단 없이 작업 가능한 방법 내부적으로 다음 프로세스를 적용하여 마이그레이션이 진행됩니다. 1. 신규 Broker를 기존 파티션의 follower로 지정 2. 신규 Broker는 기존 파티션의 모든 Data를 rep..

개발 일지 2023.06.13
반응형