본문 바로가기
  • 노션에서 삽질한 내용을 정리하는 블로그
자기발전소/# Kafka_Confluent

[Kafka] Producer

by iamlucia 2021. 5. 19.

📌 kafka 및 Confluent 를 공부하며 정리하는 글 

카프카에서 데이터를 얻는 방법을 알아보자. 

 

Producer

  • topic에 data를 write한다.

  • 어떤 broker의 어떤 파티션에 write해야 할지 자동으로 인식한다.

  • Broker에 장애가 난 경우, Producer는 자동으로 복구한다.

  • 기본적으로(key가 없는 경우) Producer는 라운드 로빈  방식으로 파티션에 데이터를 write한다. 파티션의 개수에 따라 라운드 로빈된다. 

1)  acks strategy

Producer는 data writes에 대한 확인 메세지를 받는데,  아래와 같이 3가지의 방법이 있다.  

  • acks=0 : 확인 메세지를 기다리지 않고 진행 (데이터 손실 가능)
  • acks=1 : leader의 확인 메세지만 대기 (제한된 데이터 손실 가능)
  • acks=all : leader + replicas 모두의 확인 메세지 대기 (데이터 손실 없음)

 

 

2) Message Keys : Key 기반 ordering 

  • 프로듀서는 message와 함께 key를 보낼 수 있다.(key의 형태는 string, number...)

  • Key가 null이라면, 데이터는 라운드 로빈 방식으로 전달 

  • Key가 함께 제공되는 경우, 동일한 키를 가진 모든 메세지는 항상 동일한 파티션으로 보내진다.

  • 따라서, 특정 속성에 대해 메시지 순서를 맞추고자 한다면 key를 기본적으로 보내야 한다.

    • Key to partition 알고리즘: Key Hashing (Partition number 기반)
    • 키 자체만으로 어떤 파티션에 write되도록 지정할 수 는 없지만 키가 항상 동일한 파티션으로 write된다.
  •  

'자기발전소 > # Kafka_Confluent' 카테고리의 다른 글

[Kafka] Producer 관련 주요 옵션  (0) 2021.05.29
[Kafka] Broker & Zookeeper  (0) 2021.05.19
[Kafka] Consumer  (0) 2021.05.19
[Kafka] Topic  (0) 2021.05.19
[Kafka] Apache Kafka란  (0) 2021.05.19