Kafka 로컬환경에서 띄우기

Created:

카프카를 로컬환경에서 띄워보고 간단하게 테스트를 해보고자 한다.
로컬환경에서 서버를 시작할때 기본으로 제공되는 스크립트 파일로 시작할 수도 있고 docker-compose를 이용하여 시작 할 수도 있다.

카프카 다운로드

https://kafka.apache.org/downloads
여기서 적당한 버전을 선택 후 다운로드, 압축해제까지 진행한다.

스크립트 파일로 서버시작

카프카와 주키퍼 둘다 시작시켜줘야 한다. 다운로드 받은 파일의 /bin 디렉토리에 있는 스크립트로 시작과 종료를 할 수 있다.

주키퍼 시작/종료

bin/zookeeper-server-start.sh -daemon config/zookeeper.properties // 시작
bin/kafka-server-stop.sh // 종료

카프카 시작/종료

bin/kafka-server-start.sh -daemon config/server.properties // 시작
bin/zookeeper-server-stop.sh // 종료

각각 실행된 서버의 포트는 주키퍼 2181, 카프카 9092 이다.

Docker를 사용하여 서버시작

docker-compose 사용하여 서버시작을 하는 내용이므로 위에서 스크립트로 서버시작을 했다면 건너띄자

version: "3"
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - 2181:2181
    restart: always
  kafka:
    image: wurstmeister/kafka
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    ports:
      - 9092:9092
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: always

위 내용을 docker-compose.yml로 저장한후에 docker-compose up -d 명령어로 설치 및 실행까지 진행한다. 완료되었다면 docker ps로 카프카와 주키퍼가 실행 되었는지 확인한다.

테스트

다운로드한 파일의 /bin 디렉토리에 있는 bin/kafka-console-producer.shbin/kafka-console-consumer.sh 스크립트 파일로 테스트 해볼 수 있다.

kafka-console-producer는 메시지를 전송할 수 있다. 아래 명령어로 스크립트를 실행한다.

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test

bin/kafka-console-consumer.sh는 전송한 메시지를 수신 받을 수 있다. 아래 명령어로 스크립트를 실행한다.

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

둘다 실행한후에 producer에서 아무 내용이나 입력해보자, consumer쪽에서 입력된 내용이 출력될 것이다.

Comments