4장. Kafka 소비자 구성 튜닝

특정 사용 사례에 맞는 선택적 속성과 함께 기본 소비자 구성을 사용합니다.

소비자를 튜닝할 때 주요 문제는 수집된 데이터 양에 효율적으로 대처할 수 있습니다. 생산자 튜닝과 마찬가지로 소비자가 예상대로 작동할 때까지 증분 변경을 수행할 수 있습니다.

4.1. 기본 소비자 구성

연결 및 역직렬러 속성은 모든 소비자에게 필수입니다. 일반적으로 추적을 위해 클라이언트 ID를 추가하는 것이 좋습니다.

소비자 구성에서 후속 구성에 관계없이 다음을 수행합니다.

  • 소비자는 지정된 오프셋에서 가져와서 메시지를 건너뛰거나 다시 읽기 위해 오프셋을 변경하지 않는 한 메시지를 순서대로 사용합니다.
  • 오프셋이 클러스터의 다른 브로커로 전송될 수 있으므로 브로커는 Kafka에 오프셋을 커밋하는 경우에도 소비자가 응답을 처리했는지 여부를 알 수 없습니다.

기본 소비자 구성 속성

# ...
bootstrap.servers=localhost:9092 1
key.deserializer=org.apache.kafka.common.serialization.StringDeserializer  2
value.deserializer=org.apache.kafka.common.serialization.StringDeserializer  3
client.id=my-client 4
group.id=my-group-id 5
# ...

1
(필수) Kafka 브로커의 host:port 부트스트랩 서버 주소를 사용하여 Kafka 클러스터에 연결할 소비자를 지정합니다. 소비자는 주소를 사용하여 클러스터의 모든 브로커를 검색하고 연결합니다. 쉼표로 구분된 목록을 사용하여 서버가 중단된 경우 두 개 또는 세 개의 주소를 지정하지만 클러스터의 모든 브로커 목록을 제공할 필요는 없습니다. Kafka 클러스터를 노출하기 위해 로드 밸런서 서비스를 사용하는 경우 로드 밸런서에서 가용성을 처리하기 때문에 서비스의 주소만 있으면 됩니다.
2
(필수) Kafka 브로커에서 가져온 바이트를 메시지 키로 변환하는 Deserializer입니다.
3
(필수) Kafka 브로커에서 가져온 바이트를 메시지 값으로 변환하는 Deserializer입니다.
4
(선택 사항) 로그 및 요청의 소스를 식별하는 데 사용되는 클라이언트의 논리 이름입니다. ID를 사용하여 처리 시간 할당량을 기반으로 소비자를 제한할 수도 있습니다.
5
(조건) 소비자가 소비자 그룹에 참여하려면 그룹 ID가 필요합니다.