kafka 설치 및 구성/참고) configuration

3-1) static membership지정으로 과도한 rebalancing 방지

saay-hi 2024. 6. 25. 16:33
static memebership이란,

컨슈머 그룹 내에서 컨슈머가 재시작 등으로 그룹에서 나갔다가 다시 합류하더라도 리밸런싱이 일어나지 않게 하는 정책

즉, 컨슈머마다 인식할 수 있는 ID를 적용함으로써 다시 합류하더라도 그룹 코디네이터가 기존 구성원임을 인식하게 하는 것.

 

설정 방법

group.instance.id옵션에 그룹 코디네이터가 컨슈머를 식별하기 위해 컨슈머 인스턴스별로 고유한 값을 입력해야 함


정상

case 1. group.instacne.id 입력 안할 경우

컨슈머 리밸런싱은 재시작되거나 그룹에서 떠나는 컨슈머만 대상으로 동작하는 것이 아니라서, 컨슈머 그룹 내 전체 컨슈머를 대상으로 동작함

컨슈머 리밸런싱 동작 과정 중 일시적으로 모든 컨슈머가 일시 중지하게 되며 대량의 메시지를 컨슘하는 컨슈머 그룹에게 이러한 일시 중지 동작은 매우 부담이 크며 고비용이 드는 작업

case 2. group.instance.id 입력 할 경우

session.timeout.ms에 지정된 시간을 넘어가지 않는다면 컨슈머를 잠시 제외하더라도 리밸런싱 동작이 발생하지 않음

*단, group.instance.id 옵션 사용할 경우, session.timeout.ms옵션을 기본값보다 큰 값을 사용해야 함