Kafka 컨슈머의 핵심은 레코드를 읽는 코드보다 처리 완료 시점과 오프셋 커밋 시점을 맞추는 것이다. 이 둘이 어긋나면 장애 복구 과정에서 중복 처리나 데이터 누락이 발생한다.컨슈머 그룹은 하나의 논리적 구독자다같은 group.id를 사용하는 컨슈머들은 토픽의 파티션을 나눠 처리한다. 한 파티션은 같은 그룹 안에서 한 컨슈머에게만 할당된다.컨슈머가 추가되거나 종료되고, 구독 토픽의 파티션 수가 바뀌면 그룹 코디네이터가 파티션을 다시 할당한다. 이 과정을 리밸런스(rebalance)라고 한다. 리밸런스는 장애 복구와 수평 확장을 가능하게 하지만 처리 중단과 중복 가능성도 만든다. 파티션이 4개인 토픽에 같은 그룹의 컨슈머를 6개 실행하면 동시에 일하는 컨슈머는 최대 4개다. 반대로 컨슈머가 2개라면 각 ..