강의

멘토링

로드맵

Inflearn brand logo image

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

ohk9134님의 프로필 이미지
ohk9134

작성한 질문수

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

kafka-consumer-groups 명령어로 Consumer Group과 Consumer, Lag 정보 확인하기

Consumer Group 강의 Lag 질문있습니다!

작성

·

72

0

kafka-consumer-groups 명령어로 Consumer Group과 Consumer, Lag 정보 확인하기 강의 듣다가 질문이 생겼습니다!

 

메시지 2000개를 Consumer가 없는 상황에서 전송을 한 상황에서 질문이 있습니다.

 

이전 강의에서 파티션별로 Consumer가 할당되어 메시지를 Consume 한다고 이해 했는데요.

 

이러한 원리일 때 2000개의 메시지가 들어온다면

Lag이 파티션별로 골고루 2000개가 분배되거나 총합이 2000개일 것이라고 생각했습니다.

 

그런데 파티션 3개 각각 1300개의 Lag이 있는 것을 확인할 수 있었는데 어떤 이유에서 약 1300개가 나온 것인지 궁금합니다!

답변 2

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

2000건을 보내고, 2000건을 아직 읽지 않았으면, 2000건이 있는게 맞습니다. 하지만, 적어주신 글 자체로는 어떻게 메시지를 2000건을 보내신건지, 2000건이 맞게 간 건지, 1300건이 lag로 어떻게 되어 있는지 확인할 수 없군요.

. 제 생각엔 2000건이 제대로 간 건지 다시 확인해 보시면 어떨까 싶습니다만, 어쩧든, 2000건을 보내신 utility 명령어등으로 2000건이 명확히 보내진 스크린 캡처와, 1300건이 lag로 되어 있는 스크린 캡처를 여기에 올려봐 주시면 제가 상황을 판단하는데 도움이 될 것 같습니다.

감사합니다.

ohk9134님의 프로필 이미지
ohk9134
질문자

안녕하세요 철민님! 답변 감사드립니다!

질문드린 상황은 강의 속 철민님이 진행하신 실습 화면을 보고 질문을 드린 것이었습니다!

 

실습 스크립트에 있는

kafka-console-producer --bootstrap-server localhost:9092 --topic multipart-topic < load.log 으로 2000개의 메시지를 보내고 나서

--describe 로 Consumer Group 정보를 확인할 때 다음과 같이 Lag이 1300개씩 있는 강의 화면에 나온 것을 보고 질문드렸었습니다!

(강의 약 10분 30초)

 

스크린샷 2025-05-05 15.13.51.png

 

 

권 철민님의 프로필 이미지
권 철민
지식공유자

앗, 그러셨군요.

강의 영상은 사실 제가 실습 코드를 제가 미리 테스트 해보면서 offset 값이 어느 정도 계속 증가된 상태인데, 이게 영상으로 편집이 돼버려서 그렇게 느끼실 수 있을 것 같습니다. 그러니까 영상 찍기 전에 keyload 2000건을 1번 정도 테스트 용도로 수행하면서 이미 약 2000건의 데이터가 들어가 있고, 여기에 다시 2000건을 입력하였기에 총 4000건이 들어가버린 상태로 보시기에 3개 파티션에 각각 1300여건 정도로 LAG가 잡혀 있는 걸로 보여지게 되어 있습니다.

하지만 강의 영상대로 그대로 실습 코드를 수행하시게 되면 2000건의 데이터가 3개 파티션에 650~ 690개 정도로 나뉘어져 들어갑니다. 아래는 제가 2000건의 keyload.log 를 수행한 결과 입니다. 692, 656, 660 건이 각 Lag로 표시됩니다. 각각을 더해서 정확하게 2000건이 안되는 이유는 제가 테스트 용으로 몇 건을 미리 테스트 했기 때문입니다.

 

console_consumer.png.webp

날카로운 지적 감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. ohk9134님.

질문 주신 Kafka의 Consumer Group과 메시지 Lag에 관한 내용은 많은 Kafka 사용자들이 궁금해 하는 주제 중 하나입니다. 파티션에 메시지가 분배되는 방식은 여러 가지 요소에 의해 결정됩니다. Kafka는 기본적으로 라운드 로빈 방식으로 데이터를 각 파티션에 분배하지 않고, 메시지 키를 기반으로 해시를 사용하여 지정된 파티션에 메시지를 배치합니다.

강의에서 설명하는 바와 같이, 메시지가 특정 방식으로 파티션에 분배된다면 메시지의 키값 또는 파티셔너 설정에 따라 각 파티션에 할당된 메시지가 다를 수 있습니다. 따라서, 메시지의 라그(Lag)는 파티션별로 균등하지 않을 수 있습니다.

특히, 파티션 수가 메시지 수와 나누어 떨어지지 않는 경우, 각 파티션에 분배되는 메시지가 일정하지 않아 Lag이 고르게 나타나지 않을 수 있습니다.

아래에 유사한 질문들이 있어 링크를 공유해 드리오니 참고하시기 바랍니다:

  1. “consumer group 과 topic의 관계가 궁급합니다.”
  2. “콘솔에서 컨슈머 생성”

이 두 게시물을 통해 추가적으로 Consumer와 파티션, 그리고 메시지 라그에 대한 이해를 깊게 하실 수 있을 것입니다.

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

ohk9134님의 프로필 이미지
ohk9134

작성한 질문수

질문하기