리눅스/kafka

kafka에서 message를 전송하는 과정

정지홍 2024. 9. 21. 17:46

만약에 Key값이 없는 메시지인 경우

  • 프로듀서가 메시지를 전송할때 partitioner로 결정하는데, key값이 없는 경우에는 라운드 로빈,스티키 파티션과 같은 파티션 전략을 이용하여 보낸다.

 

 

만약에 Key값이 있는 메시지인 경우

  • 특정한 key값을 가지는 메시지는 특정 파티션에만 전송된다.
    • 즉, 카프카는 파티션 내부에서만 메시지 순서를 보장해주는것이다.

 


  • kafka-console-producer  
    • 카프카에서 메시지를 생성 및 토픽에 메시지를 보내는것
  • --bootstrap server localhost:9092
    • 카프카 클러스터에 연결
  • --topic NAME
    • 메시지를 전송할 토픽 이름을 지정
  • --property key.separator=:
    • 메시지의 키와 벨류를 구분할 지정자를 명시한다.
  • --property parse.key=true
    • 키와 벨류를 분리하여 처리합니다.

 

  • --property print.key=true
    • 메시징의 키를 출력하게 한다.
  • --property print.value=true
    • 벨류를 출력하게 한다.
  • --from-beginning
    • 토픽의 메시지를 처음부터 읽게 설정한다.