작성
·
122
0
안녕하세요,
동일 groupId를 가진 두 개의 컨슈머가 하나의 토픽에 대해 poll을 하는데, 컨슈머 중 하나는 0번 파티션을 읽도록 assign하였고 나머지 컨슈머는 그냥 토픽에 대해 subscribe를 하였습니다.
그런데 0번 파티션에 assign한 컨슈머는 데이터를 읽어오지 못하고 아래와 같은 에러 로그가 발생하였는데요
Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member
이 경우는 어떻게 해석하는게 좋을까요?
답변 1
0
안녕하십니까,
동일 Group id에 속하는 consumer들은 특정 토픽내의 파티션을 서로 배타적으로 읽어야 합니다. 두개의 consumer가 동일 파티션을 읽어서는 안됩니다. 강의에서도 말씀드리지만 consumer offset 관리는 단일 파티션에 대해서 Consumer Group id 별로 기록됩니다.
따라서 동일 Group id내 consumer a가 특정 파티션 0번만 읽도록 먼저 설정하더라도 나중에 consumer b 가 topic내 모든 파티션을 읽도록 설정한다면 consumer rebalance가 일어나서 기존 consumer a는 더 이상 파티션 0을 읽지 못하게 됩니다.
감사합니다.