-
카프카 - 메시지 키 관련 내용 및 생성 방법아키텍처/kafka 2025. 6. 2. 17:08
카프카의 메시지는 크게 두 가지 종류가 있다.
키가 있는 경우 vs 키가 없는 경우
- 키가 있는 경우
- 특정 key 값을 가지는 메시지는 특정 파티션으로 고정되어 전송된다.
- 키가 없는 경우
- key가 없는 경우는 Round Robin 방식으로(1번씩 순차적으로 파티셔닝) 파티션에 전송된다.
다중 파티션 토픽 생성 방법
- kafka-topics --bootstrap-server localhost:9092 --create --topic multipart-topic --partitions 3
토픽별 저장된 파티션의 위치 확인 방법
- kafka-console-consumer --bootstrap-server lolcahost:9092 --topic multipart-topic \> --from-beginning --property print.partition=true
Key 값을 가지지 않는 메시지 전송시
- 라운드 로빈
- Kafka 2.4 버전 이전 기본 파티션 분배 전략
- 메시지 배치를 순차적으로 다른 파티션으로 전송하는 방
- 메시지가 배치 데이터를 빨리 채우지 못하면서 전송이 늦어지거나 배치를 다 채우지 못하고 전송하면서 전송 성능이 떨어짐. (아래 그림 참조)
- 스티키 파티셔닝
-
- Kafka 2.4 버전부터 기본 파티션 분배 전략
- 라운드 로빈의 성능을 개선하고자 특정 파티션으로 전송되는 하나의 배치에 메시지를 빠르게 먼저 채워서 보내는 방식
-
'아키텍처 > kafka' 카테고리의 다른 글
Producer의 acks 설정에 따른 send 방식 (0) 2025.06.09 Kafka Config 구분 및 이해 (0) 2025.06.04 컨슈머 그룹과 컨슈머 (0) 2025.06.04 카프카 설정 ( Broker-Server ) (0) 2025.06.02 [Kafka] 아파치 카프카 로그 경로 바꾸기 (0) 2025.04.07 - 키가 있는 경우