Programming/Kafka

[kafka] consumer producer key value 확인

bisi 2020. 5. 25. 16:03

카프카는 토픽을 기본으로 파티셔닝을 한다. 

하지만 하나의 파티션 안에서 또다른 기준 값이 필요하다면 key를 따로설정해줄수 있다. 

 

key 에대한 설정은 기본이 null값이기 때문에, 따로 지정하지 않으면 null로 들어감을 확인할 수 있다. 

 

아래 옵션을 컨슈머, 프로듀서의 콘솔창 실행 옵션에 추가하여  key, value를 확인해 보자.

 

key, value 설정 옵션 

parsing.key : key와 value 파싱 활성화 여부
key.separator : key와 value 파싱 구분자
print.key : console 창 출력 여부

 

컨슈머, 프로듀서의 콘솔창 실행 옵션에 추가

 

1) producer

PS C:\kafka\kafka_2.12-2.5.0\bin\windows> .\kafka-console-producer.bat --bootstrap-server localhost:9092 --topic newdata --property "parse.key=true" --propert
y "key.separator=:" --property "print.key=true"
>keyexam:hi log

 

2. consumer

PS C:\kafka\kafka_2.12-2.5.0\bin\windows> .\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic newdata --property "parse.key=true" --property "key.separate=:" --property "print.key=true" --from-beginning --formatter kafka.tools.DefaultMessageFormatter
null    hi
null    hello
keyexam hi log

 

기존에 key 값 설정 없이 받았던 메세지는 key 값이 null로 표시되고,

key값을 keyexam으로 설정하고 메세지를 보낸 경우엔 key값과 value값이 모두 출력된다. 

 

 

 

참고 

https://github.com/JunilHwang/kafka/wiki/2.2.-kafka%EC%97%90%EC%84%9C-key-value-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

https://stackoverflow.com/questions/41400224/kafka-consumer-get-key-value-pair