그것들을 순서대로 보자. :)
1-제작자가 메시지를 작성할 때-메시지를 보내려는 주제를 지정합니다. 맞습니까? 파티션에 관심이 있습니까?
기본적으로 생산자는 파티셔닝에 신경 쓰지 않습니다. 더 나은 제어를 위해 사용자 정의 된 파티 셔 너를 사용할 수있는 옵션이 있지만 완전히 선택 사항입니다.
2-구독자가 실행 중일 때-동일한 주제 또는이 소비자 그룹이 관심을 갖는 여러 주제의 소비자 클러스터의 일부가 될 수 있도록 그룹 ID를 지정합니까?
그렇습니다. 소비자는 부하를 공유하기 위해 소비자 그룹에 가입하거나 혼자 인 경우 만듭니다. 같은 그룹의 두 소비자는 같은 메시지를받지 않습니다.
3-각 소비자 그룹에 브로커에 해당 파티션이 있습니까? 아니면 각 소비자 그룹에 있습니까?
둘 다. 소비자 그룹의 모든 소비자에게는 두 가지 조건에서 파티션 세트가 할당됩니다. 동일한 그룹의 두 소비자는 공통된 파티션을 갖지 않으며 소비자 그룹 전체는 기존 파티션마다 할당됩니다.
4-파티션이 브로커에 의해 생성되었으므로 소비자가 걱정하지 않습니까?
그렇지는 않지만 기존 파티션보다 더 많은 소비자를 갖는 것이 전혀 쓸모가 없다는 것을 알 수 있습니다. 따라서 소비에 대한 최대 병렬 수준입니다.
5-각 파티션에 대해 오프셋이있는 큐이므로 소비자가 읽고 싶은 메시지를 지정해야합니까? 상태를 저장해야합니까?
예. 소비자는 파티션 당 주제별로 오프셋을 저장합니다. 이것은 Kafka가 완전히 처리하므로 걱정할 필요가 없습니다.
6-메시지가 대기열에서 삭제되면 어떻게됩니까? -예를 들어 : 보존 시간은 3 시간이고 시간이 지나면 오프셋이 양쪽에서 어떻게 처리됩니까?
소비자가 브로커의 파티션에 사용할 수없는 오프셋을 요청한 경우 (예 : 삭제로 인해) 오류 모드로 전환되어 궁극적으로이 파티션에 대해 가장 최근 또는 가장 오래된 메시지로 재설정됩니다 (에 따라 다름) auto.offset.reset 구성 값) 및 작업을 계속하십시오.