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

southbell90님의 프로필 이미지
southbell90

작성한 질문수

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

카프카 Replication(복제)와 리더(Leader)/팔로워(Follower) 실습

멀티브로커에서 consumer 사용하기

작성

·

518

0

안녕하세요

강의에서 멀티브로커 상에서 producer로 데이터를 집어 넣는 것은 실습을 하는데요

데이터를 읽을 때는 kafka-dump-log를 사용해서 읽습니다. 혹시 consumer를 사용해가지고는 멀티 브로커 상에서는 읽을 수 없나요?

confluent kafka community 버전에서는 불가능한 건가요? 가능하다면 스크립트를 알려주시면 감사하겠습니다.

 

답변 1

0

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

안녕하십니까,

consumer로도 당연히 멀티 브로커 상에서 가능합니다.

앞에서부터 지속적으로 사용한 kafka-console-consumer 를 사용하시면 됩니다. --bootstrap-server localhost:9092 에서 broker별로 port 번호만 변경하시면 됩니다.

그런데 kafka-console-consumer를 사용하지 않고 kafka-dump-log를 사용한 이유는 Topic을 파티션 레벨로 보기 위해서 이를 이용한 것입니다. 그러니까 kafka-dump-log는 파티션 레벨의 로그 파일을 볼 수가 있습니다. 반면에 kafka-console-consumer는 파티션 단위는 안되고 Topic 단위의 메시지만 볼수가 있습니다.

감사합니다.

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

답변 감사합니다.

producer.PNG위 스샷 처럼 topic-p2r2 를 partition 2에 replication-factor 2를 줘서 만들고

 

log-dump.PNG스샷처럼 kafka-console-consumer --bootstrap-server localhost:9092 --topic topic-p2r2 로 콘솔 컨슈머 가동 시켜도 읽지를 못합니다. 물론 --from-beginning 등을 넣고 해봐도 마찬가지입니다.

 

ui.PNGui도 만들어서 producer 로 데이터가 잘 들어가는 것은 확인을 하였습니다. dump-log로도 데이터가 잘 읽히는 것을 보면 데이터는 잘 들어가는 것 같습니다. 그런데 ui에서도 consumer 연결 되면 consumer정보가 떠야 하는데 뜨지 않는걸 보면 kafka-console-consumer 로 제대로 연결이 안 되는 것 같습니다. 혹시 위에서 제가 잘못한 과정이 있을까요?

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

consumer가 읽지를 못한다는게 kafka-console-consumer를 수행하면 오류가 나오는 건가요? 아님 계속 메시지를 읽기 위해서 대기하고 있다는 건가요?

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

메시지를 읽기 위해 대기하고만 있고 실제로 메시지를 읽지는 못합니다.

image위와 같이 대기만 하고 있습니다.

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

--from-beginning 을 하셔도 동일하다고 하셨는데, 한번만 더 해보시겠습니까?

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

지금 보니까 멀티브로커를 위해 만들었던 kafka_start_01.sh, kafka_start_02.sh, kafka_start_03.sh 로 카프카를 구동하면 전부 컨슈머 연결이 안 됩니다. 브로커를 1개만 구동하고 컨슈머를 연결해도 안 됩니다. 반면 kafka_start.sh 로 구동한 카프카는 잘됩니다. properties 파일은 전부 강의에 나온대로 설정했습니다.

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

음, 이건 제가 좀 더 살펴봐야 할 것 같습니다. 확인 후에 다시 말씀 드리겠습니다.

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

이게 multi kafka broker들이 기존에 생성된 zookeeper 정보를 참조하게 실습 환경이 구축되어 있다보니 consumer가 topic 정보를 찾을 때 꼬여(?) 버린것 같습니다.

원래는 기존의 zookeeper가 아닌 새로운 zookeeper를 참조하도록 실습 환경을 만들었어야 했는데, 기존 zookeeper와 kafka에서 만들어진 topic과 기존 zookeeper와 multi broker kafka로 만들어진 topic 명이 같을 경우에 producer/consumer가 오작동을 일으키는 것 같습니다.

이런 이슈가 생길것을 미리 감안하고 새로운 zookeeper를 띄우고 여기서 multi broker가 접속하도록 했어야 했는데 제 불찰이 큽니다.

좋은 정보 감사드립니다. 만약에 multi broker kafka를 급하게 실습해 보고 싶으시다면 topic명을 기존에 사용하지 않았던(그러니까 single broker에서 만들지 않은 새로운 topic) new-topic-p3r3 로 만들어서 테스트 해보시면 어떨까 싶습니다.

아무래도 여러가지 테스트를 하다보면 기존 single broker kafka와 multi broker kafka간에 동일한 topic명으로 실습을 하는 상황이 발생할 수 있기 때문에 실습 환경을 다시 세팅하고 해당부분의 강의 영상을 새로 만들어야 할 것 같습니다. 다른 일 제쳐두고 이것 부터 수정하도록 하겠습니다(강의 영상을 어느정도 수정해야 할지 먼저 확인은 해봐야 하겠지만, 늦어도 이번달 말까지는 완료하도록 하겠습니다)

 

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

zookeeper 로그 폴더를 바꾸고 해보니 제대로 정상작동하는 것을 확인하였습니다. 감사합니다.

southbell90님의 프로필 이미지
southbell90

작성한 질문수

질문하기