1 분 소요

이전 글에 이어서 진행해보자.

Docker Container

6. Kafka

zookeeper & kafka broker

카프카를 사용하기 위해서, zookeeper 서버와 kafka 서버를 한 대씩 기동했었다.
(원래 정상적으로 사용하기 위해서는 zookeeper 서버 3대 이상, kafka 서버 3대 이상 기동하는 것을 권장한다.)

이번에는 zookeeper 와 kafka를 한데 묶어서 기동하기 위해서 docker-compose를 사용해볼 것이다.

깃 허브 사이트에서 docker-compose.yml 파일을 받아오자.

$ git clone https://github.com/wurstmeister/kafka-docker.git

$ cd kafka-docker

$ code docker-compose-single-broker.yml

스크린샷 2022-10-18 오후 5 59 23

docker-compose-single-broker.yml을 아래와 같이 수정한다.

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
    networks:
      my-network:
        ipv4_address: 172.18.0.100

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 172.18.0.101
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    depends_on:
      - zookeeper
    networks:
      my-network:
        ipv4_address: 172.18.0.101

networks:
  my-network:
    name: ecommerce-network # 172.18.0.1 ~

참고
이전에는 자동으로 할당되는 IP Address를 사용했다면, zookeeper와 kafka는 직접 IP Address를 할당했다.
이는 나중에 order-serviceKafkaProducerConfig에서,
기존의 127.0.0.1 대신 kafka 컨테이너의 IP Address를 명시하기 위해서이다.
스크린샷 2022-10-18 오후 6 14 33

저장 후, docker-compose를 이용해 기동해보자.

$ docker-compose -f docker-compose-single-broker.yml up -d

스크린샷 2022-10-18 오후 6 08 31

이전과 마찬가지로 네트워크를 확인해보자.

$ docker network inspect ecommerce-network

스크린샷 2022-10-18 오후 6 09 20

7. Zipkin

zipkin 홈페이지에서 왼쪽 [Quickstart]에 보면 Docker 커맨드가 있다.
스크린샷 2022-10-18 오후 6 25 09

zipkin 컨테이너는 간단히 아래 커맨드로 실행할 수 있다. (이미지까지 pull 받아온다.)

$ docker run -d -p 9411:9411 \
--network ecommerce-network \
--name zipkin \
openzipkin/zipkin 

스크린샷 2022-10-18 오후 6 28 47

마찬가지로 네트워크를 확인해보자.

$ docker network inspect ecommerce-network

스크린샷 2022-10-18 오후 6 29 48
172.18.0.6까지 할당되어 있기 때문에 zipkin은 172.18.0.7이 할당된다.

이번에는 로그를 확인해보자.

# docker logs [컨테이너 이름]
$ docker logs zipkin

스크린샷 2022-10-18 오후 6 32 31

아래와 같이 웹 브라우저도 접속 가능하다.
스크린샷 2022-10-18 오후 6 33 41



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기