3.2. 생산자 및 소비자

생산자와 소비자는 브로커를 통해 메시지를 보내고 수신(게시 및 구독)합니다. 메시지는 선택적 와 메시지 데이터를 포함하는 값과 헤더 및 관련 메타데이터를 포함합니다. 키는 메시지 제목 또는 메시지의 속성을 식별하는 데 사용됩니다. 메시지는 일괄 처리로 전달되며, 일괄 처리 및 레코드에는 헤더와 메타데이터가 포함되어 있으며 여기에는 레코드의 타임스탬프 및 오프셋 위치와 같이 클라이언트가 필터링하고 라우팅하는 데 유용한 세부 정보가 있습니다.

생산자 및 소비자

A producer sends messages through a broker to a topic containing three partitions. Three consumers in a consumer group read the messages from the partitions

프로듀서
생산자는 파티션의 마지막 오프셋에 쓸 브로커 항목에 메시지를 보냅니다. 메시지는 라운드 로빈 기반으로 프로듀서 또는 메시지 키를 기반으로 특정 파티션에 의해 파티션에 기록됩니다.
소비자
소비자는 주제를 구독하고 주제, 파티션 및 오프셋에 따라 메시지를 읽습니다.
소비자 그룹
소비자 그룹은 지정된 주제에서 여러 생산자가 생성하는 일반적으로 큰 데이터 스트림을 공유하는 데 사용됩니다. Consumer는 group.id 를 사용하여 그룹화되므로 메시지가 멤버 전체에 분산됩니다. 그룹 내의 소비자는 동일한 파티션에서 데이터를 읽지 않지만 하나 이상의 파티션에서 데이터를 수신할 수 있습니다.
offsets

오프셋은 파티션 내의 메시지 위치를 설명합니다. 지정된 파티션의 각 메시지에는 고유한 오프셋이 있으므로 파티션 내에서 소비자의 위치를 식별하여 소비된 레코드 수를 추적하는 데 도움이 됩니다.

커밋된 오프셋은 오프셋 커밋 로그에 기록됩니다. __consumer_offsets 주제에서는 소비자 그룹에 따라 커밋된 오프셋, 마지막 및 다음 오프셋의 위치에 대한 정보를 저장합니다.

데이터 생성 및 사용

A producer sends a message to a broker topic; the message is written to the end offset (7). A consumer reads messages from offset 5