인프런 커뮤니티 질문&답변

바나나우유빨대님의 프로필 이미지
바나나우유빨대

작성한 질문수

카프카 완벽 가이드 - 코어편

Consumer와 auto.offset.reset의 내부 동작 메커니즘 상세 이해

console consumer는 __consumer_offset에 offset을 기록하지 않나요?

작성

·

30

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토픽에 대한 메시지는 잘 나오는 상황입니다

이것저것 실험해보다가 도저히 답이 나오질 않아서 첫 질문 드립니다

 

consumeroffsetinfo.png.webp

 

강의에서는 컨슈머 그룹아이디를 갖는 컨슈머를 직접 생성해왔었는데, 지금은 컨슈머 그룹아이디를 갖는 컨슈머를 따로 생성 하진 않아서

그룹에 속하지 않은 컨슈머라 메시지가 안뜨는 것인지

아니면 원래 콘솔컨슈머의 __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 토픽에 기록이 됩니다. 하지만 특정 상황에서는 콘솔에서 조회가 잘 안될 수 있습니다.

핵심 요약:

  1. 콘솔 컨슈머와 오프셋 기록: 콘솔 컨슈머(kafka-console-consumer)는 기본적으로 새로운 Consumer Group을 생성하므로, 새로운 Consumer Group의 오프셋 정보가 __consumer_offsets에 기록됩니다. 그러나, 오프셋을 확인하는 과정에서 리더기 때문에 정상적으로 보이지 않을 수 있습니다.
  2. 자바 컨슈머와의 차이: 반면, 자바 컨슈머는 거의 항상 이름이 명시적으로 지정되거나 설정된 Consumer Group을 사용하므로 __consumer_offsets에 기록된 오프셋을 정확히 확인할 수 있습니다.

문제 해결을 위한 방법:

  • 특정 오프셋 기록 확인: kafka-console-consumer가 시작될 때 컨슈머 그룹 이름을 명백하게 지정하여 오프셋이 잘 기록되는지 확인해 보세요. 즉, --group 옵션을 사용하여 특정 그룹 이름으로 콘솔 컨슈머를 시작할 수 있습니다.
  • 로그 및 설정 확인: server.properties 파일 또는 consumer.properties 파일에서 로그 세부 수준을 조정해보시고, 설정 파일의 구성 요소가 올바르게 설정되어 있는지 확인해 주세요.

참고 자료

위의 내용을 통해 확인 하신 후에도 문제가 해결되지 않는다면 추가적인 캐시 클리어 및 Kafka 브로커 관련 로그를 살펴보시는 것도 방법입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

바나나우유빨대님의 프로필 이미지
바나나우유빨대

작성한 질문수

질문하기