[E-commerce App] Docker Container를 이용한 애플리케이션 배포 - 4. Kafka & Zipkin
이전 글에 이어서 진행해보자.
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
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-service
의KafkaProducerConfig
에서,
기존의127.0.0.1
대신 kafka 컨테이너의 IP Address를 명시하기 위해서이다.
저장 후, docker-compose
를 이용해 기동해보자.
$ docker-compose -f docker-compose-single-broker.yml up -d
이전과 마찬가지로 네트워크를 확인해보자.
$ docker network inspect ecommerce-network
7. Zipkin
zipkin 홈페이지에서 왼쪽 [Quickstart]에 보면 Docker 커맨드가 있다.
zipkin 컨테이너는 간단히 아래 커맨드로 실행할 수 있다. (이미지까지 pull 받아온다.)
$ docker run -d -p 9411:9411 \
--network ecommerce-network \
--name zipkin \
openzipkin/zipkin
마찬가지로 네트워크를 확인해보자.
$ docker network inspect ecommerce-network
172.18.0.6
까지 할당되어 있기 때문에 zipkin은 172.18.0.7
이 할당된다.
이번에는 로그를 확인해보자.
# docker logs [컨테이너 이름]
$ docker logs zipkin
아래와 같이 웹 브라우저도 접속 가능하다.
💛 개인 공부 기록용 블로그입니다. 👻