isPowerfulBlog
[Kafka] Docker로 Producer, Consumer 통신하기 (Python) 본문
kafka cluster를 실행하면 compose의 broker에 접속해 직접 producer와 consumer를 통신해볼 수 있었다.
근데 나는 producer코드를 짜고 consumer코드를 짜서 각각 도커 컨테이너를 띄우고 카프카 컨테이너로 통신하고 싶었다.
이런 그림을 원한다!
그래서 아래 세 개를 network로 묶어주기로 했다.
- Producer 컨테이너
- Consumer 컨테이너
- Kafka Cluster Compose 컨테이너
docker compose에서 network 설정
# kafka-cluster/docker-compose.yaml
version: "2"
services:
zookeeper:
...
broker:
...
networks:
default:
name: my-network
- service와 같은 높이에
networks
설정을 해준다.
# producer/docker-compose.yaml
version: "3"
services:
producer:
build:
context: .
dockerfile: Dockerfile
container_name: producer
networks:
default:
name: my-network
external: true
- networks로 엮기 위해 producer와 consumer도 docker-compose.yaml 파일을 생성한다.
- kafka cluster에서 생성한 network를 producer와 consumer는 그대로 사용할 것이기 때문에
external:true
옵션을 추가한다. external: true
: 새 network 가 만들어지지 않고, 기존 network 에 연결되게 하는 옵션
실행
의존성이 발생하는 문제이기 때문에 컨테이너를 실행 순서를 지켜줘야한다,
- kafka 클러스터 실행
- consumer 실행
- producer 실행
$ docker compose -p kafka-cluster -f /kafka-cluster/docker-compose.yaml -d up
# terminal 1
$ docker compose -p consumer -f /consumer/docker-compose.yaml up
# terminal 2
$ docker compose -p producer -f /producer/docker-compose.yaml up
-d
옵션: 백그라운드 실행
demo
현재 나는 유튜브 api를 사용해 댓글 데이터를 받아오는 부분을 하는 중인데 아래와 같이 잘 된다.
References
'Data Engineering' 카테고리의 다른 글
[LangChain] S3, MinIO Loader 구현하고 PDFParser 사용하기 (0) | 2024.04.12 |
---|---|
[Kafka] Docker에서 Kafka Multi Broker Cluster 구성하기 (1) | 2023.03.22 |
[Kafka] Docker에서 Kafka 단일 Broker Cluster 구성하기 (0) | 2023.03.22 |
[ETL/ELT] 개념 (0) | 2023.03.14 |
[PostgreSQL] psql 기본 명령어 (0) | 2023.01.24 |