반응형
메시지 코디네이트(Message Coordinate)란?
메시지 코디네이트는 Kafka와 같은 분산 메시징 시스템에서 메시지의 위치와 흐름을 조정 및 관리하는 작업을 의미합니다. 이를 통해 메시지가 올바른 파티션에 분배되고, 처리 순서와 일관성이 유지되며, 효율적인 데이터 처리가 가능해집니다.
이 예에서는 프로듀서가 데이터를 파티션이 두 개인 토픽으로 전송합니다.
- 키(key)가 null인 경우:
- 데이터는 라운드 로빈(round-robin) 방식으로 파티션에 전송됩니다.
- 이는 부하를 균등하게 분산(load balancing)하기 위한 방법입니다.
- 여기서 null 키는 프로듀서 메시지에 키가 없는 경우를 나타냅니다.
- 키(key)가 존재하는 경우:
- 키가 값을 가지며, 이 값은 다양한 유형일 수 있습니다.
- Kafka 프로듀서의 중요한 기능 중 하나는, 같은 키를 가진 메시지가 항상 같은 파티션으로 전송된다는 점입니다.
- 이는 Kafka의 메시지 정렬 유지에서 매우 중요합니다.
- 같은 키를 가진 메시지들은 특정 필드(예: car ID)에 관련된 메시지 순서를 유지합니다.
자동차 ID 예시
- 자동차의 위치를 순서대로 추적하는 것이 중요하다면, 자동차 ID를 메시지 키로 사용합니다.
- 예를 들어, 자동차 ID 123은 항상 파티션 0으로 전송됩니다.
- 이로 인해 자동차 ID 123에 관한 모든 데이터가 한 파티션에 저장되므로, 순서를 유지하며 데이터를 처리할 수 있습니다.
- 비슷하게, 자동차 ID 234도 항상 파티션 0으로 전송됩니다.
- 반면, 다른 자동차 ID들(예: 345, 456)은 항상 파티션 1으로 전송됩니다.
파티션 결정 방법
- 어떤 키가 어떤 파티션으로 가는지는 해싱(hashing) 기술을 통해 결정됩니다.
- 해싱 기술은 메시지 키를 기반으로 특정 파티션을 선택합니다.
- 이는 데이터의 일관성 있는 분배와 순서 보장을 가능하게 합니다.
반응형
'개발 > kafka' 카테고리의 다른 글
[kafka] 소비자 그룹 (Consumer Group) (0) | 2025.01.05 |
---|---|
[kafka] log compaction | log tail | log head (1) | 2025.01.04 |
[kafka] Kafka Connect High-Level Overview + Cluster and Distributed Architecture (1) | 2025.01.03 |
[kafka] 토픽 생성 및 리스트 확인 + producer, consumer 메시지 전달 (mac m1) (0) | 2024.12.14 |
[kafka] kafka, zookeeper, server 시작하기 (mac m1) (0) | 2024.12.14 |