카프카는 토픽을 기본으로 파티셔닝을 한다.
하지만 하나의 파티션 안에서 또다른 기준 값이 필요하다면 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://stackoverflow.com/questions/41400224/kafka-consumer-get-key-value-pair
'Programming > Kafka' 카테고리의 다른 글
[kafka] docker portainer로 topic 검색 (0) | 2021.01.29 |
---|---|
[kafka] Multi-broker cluster 설치 및 실행 (0) | 2020.05.23 |
[kafka] Confluent Platform Versions (0) | 2020.05.20 |