로컬 리눅스 아파치 카프카 설치 및 실행 방법

로컬 테스트를 위한 아파치 카프카 2.5 설치 방법입니다.
윈도우에서는 .sh 파일을 직접 실행할 수 없어서 리눅스 가상 환경이 필요합니다.
IntelliJ에서 도커로 카프카 이미지 설정 후 실행하는게 더 간편합니다.


리눅스 아파치 카프카 설치 및 실행

카프카 바이너리 파일 다운

https://kafka.apache.org/downloads
위 링크에서 Binary downloads: kafka_2.12-2.5.0.tgz 파일 다운로드 후 압축을 해제하여 설치합니다.
2.12는 카프카 개발 및 빌드에 사용된 scala 언어 버전이고, 2.5.0은 카프카 버전입니다.

로컬 주키퍼 실행

cd 카프카폴더
bin/zookeeper-server-start.sh config/zookeeper.properties

주키퍼, 카프카 바이너리는 JVM 위에서 동작하므로, JDK 1.8 이상이 필요합니다.
운영에서는 3개 이상의 서버에서 주키퍼를 실행하여 앙상블 방식으로 연동하는 것이 일반적입니다.
카프카 3.0 이하 버전에서는 위 스크립트로 주키퍼 실행 후 카프카를 실행해야 합니다.

주키퍼 설정 예시

-- 주키퍼 데이터 저장 경로
dataDir=/tmp/zookeeper

-- 주키퍼 포트
clientPort=2181

-- 클라이언트(브로커 등)에 허용하는 최대 연결 수 (0=무제한)
maxClientCnxns=0

-- 주키퍼 상태 관리 API 서버 사용 여부
admin.enableServer=false

카프카폴더/config/zookeeper.properties 파일 설정 예시입니다.

카프카 브로커 실행

cd 카프카폴더
bin/kafka-server-start.sh config/server.properties

server.properties 설정 파일을 참조해야 카프카 브로커(서버) 실행이 가능합니다.

카프카 실행 확인

cd 카프카폴더
bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092

기본 포트 9092로 카프카 정상 실행 시, 아래와 같은 메세지를 확인할 수 있습니다.

localhost:9092 (id: 0 rack: null) -> (
  Produce(0): 0 to 7,
  Fetch(1): 0 to 11,
  ListOffsets(2): 0 to 5,
  Metadata(3): 0 to 9,
  LeaderAndIsr(4): 0 to 4,
  StopReplica(5): 0 to 1,
  UpdateMetadata(6): 0 to 6,
  ControlledShutdown(7): 0 to 3,
  ...
)

위와 같이 API 버전 정보 목록이 출력되지 않으면, 브로커가 정상 실행되지 않은 것입니다.