• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

카프카에서 토픽 생성과 카프카 콘솔 프로듀서 사용 명령어 관련 질문

21.05.09 22:45 작성 조회수 167

2

안녕하세요

토픽 생성을 할 때에

[카프카 토픽]

kafka-topics --create --zookeeper ....

이렇게 토픽을 생성하는데요 여기서 질문이 있습니다.

1. 토픽 생성과 주키퍼서버를 지정해주는 것은 어떤 관계가 있는건가요? 주키퍼는 말씀해주신대로 분산시스템을 관리하는 역할로 알고 있습니다.

2. 주키퍼의 포트는 default port가 2181인건가요? 주피커의 포트를 변경시는 것은 클라우데라설정으로 변경 가능한건가요?

[카프카 콘솔 프로듀서]

1. 카프카 브로커의 default port가 9092인가요? 여러개의 브로커를 생성하게 되면 port 변경은 클라우데라에서 해야하나요?

답변 1

답변을 작성해보세요.

1

안녕하세요! 빅디 입니다.
카프카에 대해 궁금하신게 많은듯 합니다. ㅎㅎ

카프카는 빅데이터 프로젝트 말고도 다양한 도메인과 솔루션, 시스템 구축 등에서 활용 되고 있으며, 현재 MOM 소프트웨어로썬 최고의 위치에 있다고 보셔도 됩니다.
그만큼 기능도 파워풀 하지만 대규모로 구성해 전문성 있게 사용하려면...아키텍처 복잡도가 높아집니다.

1. 토픽 생성과 주키퍼서버를 지정해주는 것은 어떤 관계가 있는건가요? 주키퍼는 말씀해주신대로 분산시스템을 관리하는 역할로 알고 있습니다.

==> 카프카도 분산 시스템 입니다. 여러대의 브로커로 구성 할 수 있으나 파일럿 환경에선 1대의 브로커로만 구성 했고요, 카프카를 멀티 브로커의 클러스터로 만들면 당연히 분산된 노드들의 메타정보를 중앙에서 관리하기 위한 코디네이터(주키퍼)가 필요하게 됩니다. 파일럿 환경이 1대의 브로커로 구성 되어 있지만, 카프카의 기본 아키텍처가 유지 되야 하므로 1대의 브로커 정보지만 주키퍼에 등록 되었고, 생성한 토픽 정보도 해당 브로커 정보가 등록된 주키퍼의 Z노드에 기록하는 것 입니다. 

(참고로 카프카 진영에서 주키퍼에 대한 의존성을 제거하기 위한 작업이 진행중에 있습니다. 머지않아 주키퍼 없는 카푸카 버젼이 릴리즈 될 것으로 보입니다.)

2. 주키퍼의 포트는 default port가 2181인건가요? 주피커의 포트를 변경시는 것은 클라우데라설정으로 변경 가능한건가요?

==> 클라이언트 디폴트 포트가 2181 맞습니다. 클라우데라 > 주키퍼 > 구성 에서 "port" 검색 해서 해당 포트번호를 바꾸실 수 있습니다. 하지만 파일럿 환경에선 2181를 사용 하셔야 합니다.

3. kafka-console-producer 명령어는 콘솔로  브로커에 접근하는 명령어 인가요?

==> 네! 맞습니다. 브로커에 접근해 메세지를 전송 하기위한 명령어 입니다.

4. 카프카 브로커의 default port가 9092인가요? 여러개의 브로커를 생성하게 되면 port 변경은 클라우데라에서 해야하나요?

==> 네..9092가 디폴트 포트입니다. 멀티 브로커를 생성하면 각 브로커마다 브로커 ID=0,1,2 를 부여 해야 하고, 포트 또한 9093, 9094 등으로 구성 해야 합니다. 당연히 클라우데라 > 카프카 > 구성 에서 "port" 검색을 통해 해당 포트를 변경할 수 있습니다.

카프카 역시 책한권으로도 부족 할 만큼, 많은 경험과 노하우가 필요한 기술중 하나 입니다. 응용 아키텍트에 관심 있으시다면 공부해 볼 만한 가치가 있는 소프트웨어 입니다.

- 빅디 올림 

min102님의 프로필

min102

질문자

2021.05.10

늦은 시간에도 친절한 답변 감사합니다!