그룹 설정

그룹 설정 (Group Configs)

컨슈머 그룹(consumer group)과 공유 그룹(share group), 스트림 그룹(streams group)처럼 Kafka의 그룹 관련 동작을 제어하는 설정들을 정리한 문서예요. 그룹 프로토콜의 하트비트, 세션 타임아웃, 리밸런스 등이 핵심 내용이에요.

출처: 문서

본문

아래는 그룹 설정 항목들이에요.

  • consumer.assignment.interval.ms — 컨슈머 그룹의 할당(assignment) 업데이트 간격.
    • 유형: int / 기본값: 1000 (1초) / 유효 값: [0,...] / 중요도: medium
  • consumer.heartbeat.interval.ms — 컨슈머 그룹의 멤버에게 주어지는 하트비트 간격.
    • 유형: int / 기본값: 5000 (5초) / 유효 값: [1,...] / 중요도: medium
  • consumer.session.timeout.ms — 컨슈머 그룹 프로토콜을 사용할 때 클라이언트 장애를 감지하는 타임아웃.
    • 유형: int / 기본값: 45000 (45초) / 유효 값: [1,...] / 중요도: medium
  • share.assignment.interval.ms — 공유 그룹(share group)의 할당 업데이트 간격.
    • 유형: int / 기본값: 1000 (1초) / 유효 값: [0,...] / 중요도: medium
  • share.auto.offset.reset — 공유 파티션(share-partition)의 시작 오프셋을 초기화하는 전략.
    • earliest: 오프셋을 가장 이른(earliest) 오프셋으로 자동 재설정
    • latest: 오프셋을 가장 최신(latest) 오프셋으로 자동 재설정
    • by_duration:<duration>: 현재 타임스탬프로부터 설정된 기간만큼 이전으로 오프셋을 자동 재설정. <duration>은 ISO8601 형식(PnDTnHnMn.nS)으로 지정해야 하고, 음수 기간은 허용되지 않아요.
    • 그 밖의 값: 공유 컨슈머에게 예외를 던져요.
    • 유형: string / 기본값: latest / 유효 값: [latest, earliest, by_duration:PnDTnHnMn.nS] / 중요도: medium
  • share.delivery.count.limit — 공유 그룹으로 전달되는 레코드의 최대 전달 시도 횟수.
    • 유형: int / 기본값: 5 / 유효 값: [2,...] / 중요도: medium
  • share.heartbeat.interval.ms — 공유 그룹의 멤버에게 주어지는 하트비트 간격.
    • 유형: int / 기본값: 5000 (5초) / 유효 값: [1,...] / 중요도: medium
  • share.isolation.level — 트랜잭션으로 작성된 레코드를 어떻게 읽을지 제어해요. read_committed로 설정하면 공유 그룹은 커밋된 트랜잭션 레코드만 전달해요. read_uncommitted로 설정하면 중단(abort)된 트랜잭션 메시지까지 모든 메시지를 반환해요. 비트랜잭션 레코드는 두 모드 모두에서 무조건 반환돼요.
    • 유형: string / 기본값: read_uncommitted / 유효 값: [read_committed, read_uncommitted] / 중요도: medium
  • share.partition.max.record.locks — 공유 파티션(share-partition)당 레코드 잠금(lock) 제한.
    • 유형: int / 기본값: 2000 / 유효 값: [100,...] / 중요도: medium
  • share.record.lock.duration.ms — 공유 그룹의 레코드 획득 잠금(lock) 지속 시간(밀리초).
    • 유형: int / 기본값: 30000 (30초) / 유효 값: [1000,...] / 중요도: medium
  • share.renew.acknowledge.enable — 공유 그룹에서 renew acknowledge 유형이 활성화되어 있는지 여부.
    • 유형: boolean / 기본값: true / 유효 값: — / 중요도: medium
  • share.session.timeout.ms — 공유 그룹 프로토콜을 사용할 때 클라이언트 장애를 감지하는 타임아웃.
    • 유형: int / 기본값: 45000 (45초) / 유효 값: [1,...] / 중요도: medium
  • streams.assignment.interval.ms — 스트림 그룹(streams group)의 할당 업데이트 간격.
    • 유형: int / 기본값: 1000 (1초) / 유효 값: [0,...] / 중요도: medium
  • streams.heartbeat.interval.ms — 멤버에게 주어지는 하트비트 간격.
    • 유형: int / 기본값: 5000 (5초) / 유효 값: [1,...] / 중요도: medium
  • streams.initial.rebalance.delay.ms — 그룹 코디네이터가 첫 리밸런스(rebalance) 전에 새 그룹에 더 많은 스트림 클라이언트가 조인하기를 기다리는 시간. 지연이 길수록 리밸런스 횟수가 줄어들 수 있어요.
    • 유형: int / 기본값: 3000 (3초) / 유효 값: [0,...] / 중요도: medium
  • streams.num.standby.replicas — 작업(task)당 대기(standby) 복제본 수.
    • 유형: int / 기본값: 0 / 유효 값: [0,...] / 중요도: medium
  • streams.session.timeout.ms — 스트림 그룹 프로토콜을 사용할 때 클라이언트 장애를 감지하는 타임아웃.
    • 유형: int / 기본값: 45000 (45초) / 유효 값: [1,...] / 중요도: medium

더 알아보기 (Learn more)

  • 하트비트·세션 타임아웃을 너무 작게 잡으면 일시적인 지연에도 멤버가 탈퇴로 오판될 수 있으니 넉넉히 잡는 편이 안전해요.
  • share.* 항목은 공유 그룹(Share Consumer) 프로토콜의 동작을 제어해요.