도커컴포즈 파일을 작성해보자
docker-compose.yml
version: '2'
services:
# wurstmeister/zookeeper:3.4.6
zookeeper:
hostname: zookeeper
container_name: zookeeper
image: wurstmeister/zookeeper:3.4.6
ports:
- "2181:2181"
# wurstmeister/kafka:2.13-2.8.1 - broker 1
kafka1:
hostname: kafka1
container_name: kafka1
image: wurstmeister/kafka:2.13-2.8.1
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: kafka1
BOOTSTRAP_SERVERS: kafka1:9092, kafka2:9093, kafka3:9094
KAFKA_CREATE_TOPICS: "test1:1:1"
ports:
- "9092:9092"
depends_on:
- zookeeper
# wurstmeister/kafka:2.13-2.8.1 - broker 2
kafka2:
hostname: kafka2
container_name: kafka2
image: wurstmeister/kafka:2.13-2.8.1
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: kafka2
BOOTSTRAP_SERVERS: kafka1:9092, kafka2:9093, kafka3:9094
KAFKA_CREATE_TOPICS: "test2:1:1"
ports:
- "9093:9092"
depends_on:
- zookeeper
# wurstmeister/kafka:2.13-2.8.1 - broker 3
kafka3:
hostname: kafka3
container_name: kafka3
image: wurstmeister/kafka:2.13-2.8.1
environment:
KAFKA_BROKER_ID: 3
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: kafka3
BOOTSTRAP_SERVERS: kafka1:9092, kafka2:9093, kafka3:9094
KAFKA_CREATE_TOPICS: "test3:1:1"
ports:
- "9094:9092"
depends_on:
- zookeeper
도커컴포즈해보자
docker-compose up -d
잘 시작됐다.
지금 도커가 실행중인지 명령어로 확인해보자
docker ps
잘 실행중이다.
도커로 작업을 하다보면 무슨 문제가 생겼을 때
통신이 안되는건가..? 하는 의문이 들 때가 있다.
그럴때에는 해당 호스트네임을 알거나 해당 아이피를 알면 ping으로 통신유무를 확인할 수 있다.
현재 도커컴포즈의 4개의 컨테이너 호스트이름은 zookeeper, kafka1, kafka2, kafka3 이다.
먼저 아무 컨테이너나 접속해보자
docker exec -it kafka2 /bin/bash
그리고 본인을 제외한 zookeeper, kafka1, kafka3 컨테이너에 핑을 날려보자
ping zookeeper
핑이 가면 통신이 되고 있는 상태이다.
컨트롤+c로 끝낼 수 있다.
마찬가지로 kafka1, kafka3에 각각 핑을 날려보자
ping kafka1
ping kafka3
만약 핑이 가지 않는다면 다음과 같은 현상을 보인다.
먼저 아무 ip를 ping으로 보내보자
ping 172.29.0.83
아무런 응답이 없다..
아무런 응답이 없으면 네트워크 연결이 되지 않은 상태다.
방화벽 문제이거나,
작업하기 전에 먼저 네트워크 연결이 돼 있는지 무조건 확인해야된다.
'Data Engineering > Kafka' 카테고리의 다른 글
[kafka] 카프카에서 토픽 생성하는 방법 (0) | 2021.12.26 |
---|---|
[kafka] 도커의 각 컨테이너의 접속할 때 현재의 사용자계정을 확인하는 방법 whoami (0) | 2021.12.23 |
[kafka] 도커컴포즈로 멀티노드 카프카 만드는 방법 (docker compose, kafka, zookeeper) (0) | 2021.12.23 |
[kafka] 도커컴포즈로 싱글노드 카프카 만드는 방법 (docker compose, single, kafka, zookeeper) (0) | 2021.12.23 |
[kafka] 카프카의 구성요소 (0) | 2021.12.19 |