Consumer Connection Config
bootstrap.servers
- Type: list
- Default: ""
- Valid Values: non-null string
- Importance: high
- 카프카 클러스터에 처음 연결을 하기 위한 호스트와 포트 정보로 구성된 리스트 정보.
fetch.min.bytes
- Type: int
- Default: 1
- Valid Values: [0,...]
- Importance: high
- 한번에 가져올 수 있는 최소 데이터 사이즈.
- 만약 지정된 사이즈 보다 작은 경우, 요청에 응답하지 않고 데이터가 누적될 때까지 기다림.
group.id
- Type: string
- Default: null
- Valid Values:
- Importance: high
- 컨슈머가 속한 컨슈머 그룹을 식별하는 식별자
enable.auto.commit
- Type: boolean
- Default: true
- Valid Values:
- Importance: medium
- 백그라운드로 주기적으로 오프셋을 커밋
auto.offset.reset
- Type: string
- Default: latest
- Valid Values: [latest, earliest, none]
- Importance: medium
- 카프카에서 초기 오프셋이 없거나 현재 오프셋이 더 이상 존재하지 않은 경우(데이터가 삭제)에 다음 옵션으로 리셋함.
- earliest : 가장 초기의 오프셋 값으로 설정
- latest : 가장 마지막의 오프셋 값으로 설정
- none : 이전 오프셋값을 찾지 못하며 에러를 나타냄.
fetch.max.bytes
- Type: int
- Default: 52428800
- Valid Values: [0,...]
- Importance: medium
- 한번에 가져올 수 있는 최대 데이터 사이즈
request.timeout.ms
- Type: int
- Default: 30000
- Valid Values: [0,...]
- Importance: medium
- 요청에 대해 응답을 기다리는 최대 시간
session.timeout.ms
- Type: int
- Default: 10000
- Valid Values:
- Importance: high
- 컨슈머와 브로커사이의 세션 타임 아웃 시간. 브로커가 살아있는것으로 판단하는시간(기본값 10초) 만약 컨슈머가 그룹코디네이터에게 하트비트를 보내지 않고 session.timeout.ms이 지나면 해당 컨슈머는 종료되거나 장애가 발생하는 것으로 판단한고 컨슈머 그룹은 리밸런스 시도.
- heartbeat.timeout.ms 옵션과 밀접한 관련이 있음. 두 옵션 동시에 수정.
- session.timeout.ms를 기본값보다 낮게 설정하면 실패를 빨리 감지하지만 가비지 컬렉션이나 poll루프를 완료하는 시간이 길어지게 되면 원하지 않게 리밸러스 발생할수 있음.
- session.timeout.ms를 기본값보다 높게 설정하면 오류감지 하는데 오랜 시간이 걸리지만, 리밸런스 발생가능성 줄어듬.
heartbeat.interval.ms
- Type: int
- Default: 3000
- Valid Values:
- Importance: high
- 그룹코디네이터에게 얼마나 자주 kafkaconsumer poll() 메소드로 하트비트를 보낼 것인지 조정.
- session.timeout.ms과 동시에 수정.
- session.timeout.ms값보다 낮아야 함.
- 기본값은 3초이지만 일반적으로 session.timeout.ms값의 1/3정도로 설정.
max.poll.records0
- Type: int
- Default: 500
- Valid Values: [1,...]
- Importance: medium
- 단일 호출 poll()에 대한 최대 레코드 수를 조정.
- 어플리케이션의 폴링 루프에서 데이터 양을 조정
max.poll.interval.ms
- Type: int
- Default: 300000
- Valid Values: [1,...]
- Importance: medium
- 컨슈머가 살아 있는지를 체크하기 위해 하트비트를 주기적으로 보내는데, 컨슈머가 계속해서 하트비트만 보내고 실제로 메세지를 가져가지 않는 경우가 있을수도 있음.이런 경우 컨슈머가 무한정으로 해당 파티션을 점유할 수 없도록 주기적으로 poll을 호출하지 않으면 장애라고 판단하고 컨슈머 그룹에서 제외한 후 다른 컨슈머가 해당 파티션에서 메시지를 가져갈 수 있게함.
auto.commit.interval.ms
- Type: int
- Default: 5000
- Valid Values: [0,...]
- Importance: low
- 주기적으로 오프셋을 커밋하는 시간
fetch.max.wait.ms
- Type: int
- Default: 500
- Valid Values: [0,...]
- Importance: low
- fetch.min.bytes에 의해 설정도니 데이터 보다 적은 경우 요청에 응답을 기다리는 최대 시간.
참고 사이트 : https://kafka.apache.org/documentation/#consumerconfigs
참고 문헌 : 카프카, 데이터 플랫폼의 최강자 실시간 비동기 스트리밍 솔루션 Kafka의 기본부터 확장 응용까지
'Programming > Kafka' 카테고리의 다른 글
[kafka] 자주 사용하는카프카 명령어 (2) | 2020.04.23 |
---|---|
[Kafka] No jmx port but jmx polling enabled (0) | 2020.04.21 |
[kafka] Consumer 주요 기능 (0) | 2020.04.21 |