리밸런싱은 왜 멈추나 (Rebalancing)
컨슈머가 들어오거나 나가면 파티션 배정을 다시 계산해야 합니다. 예전 방식(eager)은 모든 컨슈머가 맡은 것을 일단 전부 반납한 뒤 다시 나눠 갖기 때문에, 바뀔 필요가 없던 파티션까지 그 사이 멈춥니다. cooperative 방식은 옮겨야 할 것만 반납해 나머지는 계속 읽습니다.
01리밸런싱은 왜 멈추나 (Rebalancing)
개념 한눈에 보기eager · 전원이 반납하고 다시 나눈다
컨슈머 둘이 세 줄을 나눠 읽고 있습니다. 여기에 셋째가 합류하려 합니다.
eager 방식은 먼저 전원이 맡은 것을 반납합니다. 배정이 통째로 비워집니다.
그동안 세 줄 모두 소비가 멈춥니다. 바뀔 필요가 없던 파티션 0·2 까지 함께 멈춘 것이 문제입니다.
재계산이 끝나면 새 배정을 받고 다시 읽기 시작합니다. 결과는 셋이 하나씩 맡는 형태입니다.
cooperative · 옮길 것만 반납한다
같은 상황입니다. 컨슈머 둘이 읽는 중이고 셋째가 합류하려 합니다.
cooperative 방식은 먼저 계산부터 합니다 — 실제로 주인이 바뀌어야 하는 건 파티션 1 하나뿐입니다.
그래서 파티션 1만 반납합니다. 파티션 0·2 는 주인이 그대로라 읽기를 계속합니다.
반납된 파티션 1이 consumer-3 에게 배정되며 마무리됩니다. 최종 형태는 eager 와 같습니다.
02 쉽게 이해하기
For Everyone컨슈머가 들고 날 때 파티션 배정을 다시 계산합니다. eager 는 전원이 반납한 뒤 재배정해 그동안 전체가 멈추고, cooperative 는 주인이 바뀌는 파티션만 반납해 나머지는 계속 읽습니다.
eager 리밸런싱은 stop-the-world 입니다.
컨슈머 하나가 추가됐을 뿐인데 전원이 배정을 반납하고 재계산을 기다리므로, 그동안 전체 소비가 멈춥니다.
cooperative(점진적) 리밸런싱은 실제로 주인이 바뀌는 파티션만 회수하고 나머지는 그대로 두어 멈춤을 최소화합니다.
재시작이 잦은 환경일수록 이 차이가 지연으로 크게 드러납니다.
- –배포·오토스케일이 잦은 환경의 파티션 할당 전략 선택
- –리밸런싱 지연 원인 진단
- –session.timeout·max.poll.interval 튜닝
03 자주 묻는 질문
FAQ리밸런싱은 왜 멈추나 (Rebalancing)란 무엇인가요?+
컨슈머가 들어오거나 나가면 파티션 배정을 다시 계산해야 합니다. 예전 방식(eager)은 모든 컨슈머가 맡은 것을 일단 전부 반납한 뒤 다시 나눠 갖기 때문에, 바뀔 필요가 없던 파티션까지 그 사이 멈춥니다. cooperative 방식은 옮겨야 할 것만 반납해 나머지는 계속 읽습니다.
리밸런싱은 왜 멈추나 (Rebalancing)은(는) 어디에 사용하나요?+
배포·오토스케일이 잦은 환경의 파티션 할당 전략 선택, 리밸런싱 지연 원인 진단, session.timeout·max.poll.interval 튜닝
리밸런싱은 왜 멈추나 (Rebalancing)를 쉽게 비유하면?+
컨슈머가 들고 날 때 파티션 배정을 다시 계산합니다. eager 는 전원이 반납한 뒤 재배정해 그동안 전체가 멈추고, cooperative 는 주인이 바뀌는 파티션만 반납해 나머지는 계속 읽습니다.
