실시간 데이터 처리/Kafka

Kafka Producer Partition Leader / Ack, Timeout

BUST 2018. 7. 31. 22:25

Kafka Producer Partition Leader / Ack, Timeout


Partition Leader

여러대의 클러스터로 묶인 서버중 한대는 Partition Leader로 할당이 되고, 다른 서버는 Follower로 할당이 된다. Leader은 Read와 Write를 담당을 하게 되고 Follower은 Leader의 데이터를 복제(Replicate)를 한다. Leader 서버가 죽게 되면 Follower 서버중의 하나가 자동으로 Leader가 된다.


`ack` configuration for producer

Kafka에 Message에 대해 Produce를 할때 서버로부터 ack를 어떻게 받는지에 대한 설정이다. ack를 받지 못하고 일정 시간(timeout)이 지나가면 KafkaProducer에서 Timeout 에러가 발생이 된다.
  • ack=all
    • leader가 데이터를 받고 follower가 데이터를 모두 복제를 한경우에 ack를 준다
  • ack=1
    • leader가 데이터를 받은 경우에 ack를 준다.
  • ack=0
    • kafka 로부터 ack를 기다리지 않는 경우