인프런 커뮤니티 질문&답변
console consumer는 __consumer_offset에 offset을 기록하지 않나요?
작성
·
119
0
현재 상황 :
kafka-console-consumer --consumer.config $CONFLUENTHOME/consumer_temp.config --bootstrap-server localhost:9092 --topic __consumer_offsets --formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter"콘솔컨슈머를 작동한 상태
인텔리제이에서 자바 컨슈머를 작동시키면
__consumer_offset에 대한 메시지가 잘 뜨는 상황
콘솔컨슈머는 동작할 때마다 그룹이 새롭게 만들어짐
카프카의 로그를 통해 그룹ID를 확인
그룹ID :
console-consumer-66204
[2024-11-08 08:54:50,280] INFO [GroupCoordinator 0]: Assignment received from leader console-consumer-63e25045-a918-49c9-bb02-abddbac461f9 for group console-consumer-66204 for generation 1. The group has 1 members, 0 of which are static. (kafka.coordinator.group.GroupCoordinator)
의문점 :
실험을 위해
CONSUMEROFFSETINFO토픽을 생성하고, 콘솔 컨슈머를 작동, 콘솔 프로듀서로 메시지를 보낸 상황토픽명 :
CONSUMEROFFSETINFO그룹명 :
console-consumer-66204
[질문]
왜 콘솔컨슈머에 대한 메시지는 나오지 않나요?
여전히 자바 컨슈머를 작동시키면 __consumer_offsets토픽에 대한 메시지는 잘 나오는 상황입니다
이것저것 실험해보다가 도저히 답이 나오질 않아서 첫 질문 드립니다

강의에서는 컨슈머 그룹아이디를 갖는 컨슈머를 직접 생성해왔었는데, 지금은 컨슈머 그룹아이디를 갖는 컨슈머를 따로 생성 하진 않아서
그룹에 속하지 않은 컨슈머라 메시지가 안뜨는 것인지
아니면 원래 콘솔컨슈머의 __consumer_offset정보는 읽을 수 없는건지..
도와주세요
답변 2
0
안녕하십니까,
저도 다 테스트는 해보진 않았지만,
kafka-console-consumer --consumer.config /home/min/consumer_temp.config \
--bootstrap-server localhost:9092 --topic __consumer_offsets \
--formatter "kafka.coordinator.group.GroupMetadataManager\$OffsetsMessageFormatter
명령어가 완벽하게 동작하는 건 아닌것 같습니다. 명확한 원인은 찾지 못했지만, 특정 경우에 출력이 안되는 경우가 있는 것 같습니다. 아마도 명확하게 group 명이 정해지지 않은 경우에는 잘 안되는 것 같습니다.
kafka-console-consumer 수행 시에 --group group_test_01 과 같이 --group으로 group 명을 설정한 뒤 함 수행해 보십시요.
그리고 해당 명령어는 consumer와 __consumer_offsets가 어떻게 동작하는지 이해하기 위해서만 적용해 보시면 좋을 것 같습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 바나나우유빨대님.
Kafka에서 kafka-console-consumer 명령어를 사용하여 메시지를 소비하게 되면, 기본적으로 새로운 Consumer Group이 생성됩니다. 이 Consumer Group의 메시지는 __consumer_offsets 토픽에 기록이 됩니다. 하지만 특정 상황에서는 콘솔에서 조회가 잘 안될 수 있습니다.
핵심 요약:
- 콘솔 컨슈머와 오프셋 기록: 콘솔 컨슈머(
kafka-console-consumer)는 기본적으로 새로운 Consumer Group을 생성하므로, 새로운 Consumer Group의 오프셋 정보가__consumer_offsets에 기록됩니다. 그러나, 오프셋을 확인하는 과정에서 리더기 때문에 정상적으로 보이지 않을 수 있습니다.
- 자바 컨슈머와의 차이: 반면, 자바 컨슈머는 거의 항상 이름이 명시적으로 지정되거나 설정된 Consumer Group을 사용하므로
__consumer_offsets에 기록된 오프셋을 정확히 확인할 수 있습니다.
문제 해결을 위한 방법:
- 특정 오프셋 기록 확인:
kafka-console-consumer가 시작될 때 컨슈머 그룹 이름을 명백하게 지정하여 오프셋이 잘 기록되는지 확인해 보세요. 즉,--group옵션을 사용하여 특정 그룹 이름으로 콘솔 컨슈머를 시작할 수 있습니다.
- 로그 및 설정 확인:
server.properties파일 또는consumer.properties파일에서 로그 세부 수준을 조정해보시고, 설정 파일의 구성 요소가 올바르게 설정되어 있는지 확인해 주세요.
참고 자료
- Kafka Consumer Groups: Understanding the Details - Kafka의 공식 문서를 통해 Consumer Group과 오프셋 관리에 대한 더 깊은 내용을 참고할 수 있습니다.
위의 내용을 통해 확인 하신 후에도 문제가 해결되지 않는다면 추가적인 캐시 클리어 및 Kafka 브로커 관련 로그를 살펴보시는 것도 방법입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





