작성
·
243
0
토픽을 구독하는 컨슈머를 콘솔에서 생성하면, 생성하는 컨슈머마다 항상 새로운 그룹이 만들어지게 되는거고 해당 토픽에 내부 파티션인 __consumer_offset가 생성된 컨슈머의 수만큼 만들어지는게 맞나요?
자바의 KafkaConsumer 를 사용할때 이미 존재하는 컨슈머 그룹에 참여한다면, 토픽에는 해당 컨슈머 그룹에 대한 정보인 __consumer_offset이 이미 존재하고 컨슈머에서 이 값을 읽어오니 earlist로 설정해도 0번 인덱스 레코드부터 읽는게 아닌 __consumer_offset에서 offset 값을 그대로 읽어와 사용하는게 맞나요?
답변 1
0
안녕하십니까,
"__consumer_offset가 생성된 컨슈머의 수만큼 만들어지는게 맞나요" 라는 질문을 이해하지 못했습니다. 뭐가 만들어 지는데 좀더 자세한 설명 부탁드립니다만,,,
먼저 개괄적으로 말씀드리면
__consumer_offsets 내부 topic은 Consumer Group만 기록하지, Consumer는 기록하지 않습니다. Consumer의 subscribe, poll, commit 로직에 대한 강의 영상을 다시 한번 들으시면 좋을 것 같습니다.
그리고 말씀하신대로 console에서 consumer를 생성하면 무조건 새로운 consumer group을 생성합니다.
네, 맞습니다. auto.offset.reset=earliest는 해당 consumer group 이 읽는 토픽이 __consumer_offset에 없을 때 해당 topic의 처음 부터 읽을 것을 지정하는 것입니다. 만약 해당 consumer_group이 __consumer_offsets에 읽으려는 topic의 offset이 기록되어 있으면 auto.offset.reset 여부와 관계없이 __consumer_offsets에 있는 offset 이후 부터 읽어 들이게 됩니다.
감사합니다.