인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

LeeDong Won님의 프로필 이미지

작성한 질문수

15일간의 빅데이터 파일럿 프로젝트

4.탐색 파일럿 실행 2단계 - 04.스파크 구성

카프카 관련 문의

작성

·

72

0

안녕하세요?

다름아니라 지금 다시 처음부터 실습을 해 보는 중인데 계속해서 해결이 않되는 부분이 있습니다.

카프카 부분인데요 분명히 토픽도 잘 생성된 것 같아서 메시지를 프로듀싱해보면 컨슈머에서 해당 메시지가 보이지 않아서 관련해서 트러블슈팅 팁을 문의드립니다.

관련 스크린샷은 아래에 첨부하였습니다.

감사합니다.

image.pngimage.png

 

image.pngimage.png

감사합니다.

 

답변 2

1

Big.D님의 프로필 이미지
Big.D
지식공유자

안녕하세요! 빅디 입니다.

아래처럼 파티션 넘버 0번을 옵션을 추가해서 실행 해봐 주세요~ -빅디 드림

$ kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0 --from-beginning

LeeDong Won님의 프로필 이미지
LeeDong Won
질문자

오호... 잘 되네요... 감사합니다.

근데 --partition 0옵션을 넣는 이유가 뭔지가 갑자기 궁금해집니다.

시간되실때 답변 부탁드립니다.

 

감사합니다.

Big.D님의 프로필 이미지
Big.D
지식공유자

네~ "LeeDong Won"님!

카프카의 파티션은 분산환경의 대규모 실시간 메세징 처리를 위한 강력한 기능중 하나 입니다.

이를 위해 다양한 파티션 전략을 세울수 있는데요, 그중 아래와 같이 아키텍처링 해 볼 수 있습니다.

하나의 토픽을 생성하고, 해당 토픽에 여러개의 파티션을 만들어서, 대규모 메세지들이 여러 파티션으로 안정적이면서 빠르게 분산 저장되게 만듦니다.

이렇게 여러 파티션에 분산 저장된 메세징들을 빼내서 빠르게 처리하기 위해선, 파티션의 수만큼 여러 컨슈머가 있어야 겠죠??!!

그래서 해당 토픽에 데이터를 수신받기 위한 여러 컨슈머를 구성해 하나의 컨슈머 그룹으로 묶고, 해당 그룹안에 컨슈머들이 여러 파티션들로부터 동시다발적으로 메세징을 빼내서 처리 하게끔 구성을 합니다.

가장 심플하게는 파티션을 3개를 만든다면, 하나의 컨슈머 그룹안에 3개의 컨슈머 프로그램을 작동 시켜서 아래와 같이 구성할 수 있습니다.

SmartCar-Topic > 파티션0번 --> 컨슈머그룹1 > 컨슈머프로그램1
> 파티션1번 --> 컨슈머그룹1 > 컨슈머프로그램2
> 파티션2번 --> 컨슈머그룹1 >컨슈머프로그램3

위 상황에서 또 다른 시스템이 SmartCar-Topic의 데이터를 수신하고 싶다면, 새로운 컨슈머그룹2 > 컨슈머프로그램1,2,3을 작동시켜서, 메싱징 데이터들을 제공받을 수 있습니다.

파일럿 프로젝트에선 자원의 한계상 SmartCar-Topic을 만들때 1개의 파티션을 만들겠다고만 정의를 했고,
컨슈머가 작동될때 SmartCar-Topic의 0번 파티션을 참조 하겠다고 옵션을 설정한겁니다.

카프카는 빅데이터 시스템뿐만 아닌, 다양한 시스템에서 많이 활용되고 있고요..
실시간 메세징 처리에 관심이 있다면 깊이 있는 연구와 경험이 필요한 분야 입니다.
사실 모든 분야가 다 그렇기는 하지만요...^^;;;

파일럿프로젝트 끝까지 화이팅! 입니다. -빅디 드림

LeeDong Won님의 프로필 이미지
LeeDong Won
질문자

상세하고 친절한 답변 너무 감사드립니다!!!

0

인프런 AI 인턴님의 프로필 이미지

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

LeeDong Won님, Kafka 메시지를 프로듀싱했을 때 Consumer 쪽에서 메시지가 보이지 않는 문제에 대해 다뤄진 기존 질문과 답변이 있습니다. 이 문제는 Kafka 설정이나 실행 명령의 문제일 수 있습니다.

아래 관련된 질문과 그에 대한 해결책 링크들을 참고하시면 좋을 것 같습니다:

  1. 카프카 Consumer 작동 에러

    • 이 질문에서는 Kafka Consumer가 메시지를 제대로 수신하지 못하는 경우의 일반적인 문제와 해결책이 다루어져 있습니다. 특히, offset 설정이나 log 파일 확인 방법에 대한 가이드가 포함되어 있습니다.
  2. Kafka 기능 구현 질문입니다.

    • Kafka 메시지 소비 관련하여 Slack과 Kafka의 통합에 대한 설정 및 테스트 방법이 다루어져 있습니다.
  3. 카프카에서 토픽 생성과 카프카 콘솔 프로듀서 사용 명령어 관련 질문

    • 카프카 토픽 생성과 프로듀서/컨슈머 설정 및 실행 관련 문제 해결에 대해 자세히 설명하고 있습니다.

일반적으로 Kafka Consumer가 메시지를 수신하지 못하는 문제는 다음을 점검해보세요:
- Producer와 Consumer가 동일한 토픽을 사용하고 있는지 확인
- Consumer에서 사용할 Group ID가 적절히 설정되었는지 확인
- 메시지가 전송될 때의 오류 메시지를 Kafka 로그에서 확인

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