[Kafka] 도커 컴포즈로 카프카 설치하기
Kafka install
- /home/user경로에- touch kafka-docker-compose.yml파일을 만들어 아래 yaml 파일을 생성하고 다음 내용을 추가한 후 저장한다.
version: "3"
services:
  zookeeper:
    image: zookeeper
    restart: always
    container_name: zookeeper
    hostname: zookeeper
    ports:
      - 2181:2181
    environment:
      ZOO_MY_ID: 1
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
    - 9092:9092
    environment:
      KAFKA_ADVERTISED_HOST_NAME: [machine-ip-address]
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
  kafka_manager:
    image: hlebalbau/kafka-manager:stable
    container_name: kafka-manager
    restart: always
    ports:
      - "9000:9000"
    environment:
      ZK_HOSTS: "zookeeper:2181"
      APPLICATION_SECRET: "random-secret"
    command: -Dpidfile.path=/dev/null
- 외부 서버로 이용한다면 Port를 개방
    - firewall-cmd --zone=public --permanent --add-por=9092/tcp
- firewall-cmd --reload
 
- 
    docker-compose -f kafka-docker-compose.yml up -d명령어로 해당 yml을 기반으로 구성한 컨테이너를 생성- 
        -d커멘드를 추가하면 백그라운드에서 실행 
 
- 
        
- 
    bash를 통해 컨테이너 접근 - 
        sudo docker exec -it kafka /bin/bash
- 
        컨테이너는 /opt/kafka/경로에있으므로 접근하여bin경로로 이동
- 
        cd /opt/kafka/bin/- 
            # 도커가 꺼져있을 경우 sudo service docker start : 도커 실행 명령어
 
- 
            
 
- 
        
Topic 생성
메시지를 보내기 위한 test 토픽을 생성
./kafka-topics.sh --create --bootstrap-server localhost:9092 --topic test
Producer & Consumer
2개의 터미널을 열어 각각 프로듀서와 컨슈머가 작동하는 지 확인해보자
- 터미널 1
    - ./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test
 
- 터미널 2
    - ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
 
producer에서 입력한 메시지들이 Consumer에서 잘 출력 되는 것을 확인
Kafka Manager
kafka manager가 정상 작동되면 9000번 포트로 접근이 가능하다.

 
      
댓글남기기