Program Tip

Kafka의 키 / 값 쌍 기반 메시징의 목적은 무엇입니까?

programtip 2021. 1. 8. 22:11
반응형

Kafka의 키 / 값 쌍 기반 메시징의 목적은 무엇입니까?


의 모든 예제카프카 | 생산자ProducerRecord의 키 / 값 쌍이 동일한 유형 (모든 예가 표시됨 <String,String>) 일뿐만 아니라 동일한 값인 것으로 표시 합니다 . 예를 들면 :

producer.send(new ProducerRecord<String, String>("someTopic", Integer.toString(i), Integer.toString(i)));

그러나 Kafka 문서에서는 키 / 값 개념 (및 기본 목적 / 유틸리티)이 설명 된 위치를 찾을 수없는 것 같습니다. 전통적인 메시징 (ActiveMQ, RabbitMQ 등)에서 저는 항상 특정 주제 / 대기열 / 교환에서 메시지를 실행했습니다. 그러나 Kafka는 일반적인 'ole string 메시지 대신 키 / 값 쌍이 필요한 것으로 보이는 최초의 브로커입니다.

그래서 저는 묻습니다 : 생산자들에게 KV 쌍을 보내도록 요구하는 목적 / 유용성은 무엇입니까?


Kafka는 파티션으로 구성된 분산 로그 의 추상화를 사용합니다 . 로그를 파티션으로 분할하면 시스템을 확장 할 수 있습니다.

는 메시지가 추가되는 로그 내의 파티션을 결정하는 데 사용됩니다. 값은 메시지의 실제 페이로드입니다. 예제는 실제로 이와 관련하여 매우 "좋은"것이 아닙니다. 일반적으로 복잡한 유형을 값으로 사용하고 (튜플 유형 또는 JSON 또는 유사) 하나의 필드를 키로 추출합니다.

참조 : http://kafka.apache.org/intro#intro_topicshttp://kafka.apache.org/intro#intro_producers

일반적으로 키 및 / 또는 값도 일 수 있습니다 null. 키가 null임의 파티션이면 선택됩니다. 값이있는 경우 null있습니다 경우 특별한 "삭제"의미를 가지고 당신은 주제 (대한 로그 압축 대신 로그 보존 정책 있도록 http://kafka.apache.org/documentation#compaction을 ).

참조 URL : https://stackoverflow.com/questions/40872520/whats-the-purpose-of-kafkas-key-value-pair-based-messaging

반응형