[kafka] kafka-consumer option

한 브로커는 최대 4000개

partition과 Replication은 클 수록 좋다

serialize 직렬화

key.serializer

value.serializer

해싱 or RR(round robin) 

 

consumer가 다수의 partitions를 어떻게 읽는가

기본적으로 각 partitions로 부터 라운드 로빈 형태로 하나씩 읽음

데이터의 병렬성이나 데이터 생산 속도를 위해서 consumer를 여러개 consumer group

backpressure

consumer group rebalancing 로드밸런싱

enable_auto_commit(=True)인경우 문제가 생긴 데이터가 로그가? 없이 수행

 

auto_offset_reset = earliest / latest

/ 최근에 새로 가져온 데이터 ?

 

message processing guarantee 방식

- exactly once 정확히 합번, 에러 발생시 어려움, 메시지 손실과 중복없음(ideal)

- at least once 적어도 한번, 중복 가능성 존재

- at most once 최대 한번만, 메시지 손실 가능성 존재, 중복은 없음(default) 

 

ksql

rowtime = 에포크