isPowerfulBlog
[Kafka] Docker에서 Kafka 단일 Broker Cluster 구성하기 본문
도커이미지를 이용해서 간편하게 단일 브로커 Kafka 클러스터를 구성해보기
이미지 출처: https://www.tutorialspoint.com/apache_kafka/apache_kafka_cluster_architecture.htm
카프카를 운영하기 위해서
- kafka cluster
- zookeeper: kafka cluster 관리
가 필요하다
Requirements
Docker Hub에 있는 confluentinc의 zookeeper
, broker
이미지를 사용한다.
REPOSITORY TAG IMAGE ID CREATED SIZE
confluentinc/cp-kafka 7.3.0 b526943eeea4 5 months ago 828MB
confluentinc/cp-zookeeper 7.3.0 b3ebff3db01d 5 months ago 828MB
Docker Compose
zookeeper
와 broker
, 두 서비스를 엮어야하기 때문에 docker compose로 컨테이너를 실행해줘야한다.
# kafka-cluster/docker-compose.yaml
version: "2"
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.3.0
container_name: zookeeper
ports:
- 2181:2181
environment:
ZOOKEEPER_SERVER_ID: 1
ZOOKEEPER_CLIENT_PORT: 2181
broker:
image: confluentinc/cp-kafka:7.3.0
container_name: broker
depends_on:
- zookeeper
ports:
- 9092:9092
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
실행
$ docker compose -p kafka-cluster -f docker-compose.yaml -d
컨테이너 접속
broker 서비스 접속
$ docker compose -p kafka-cluster exec broker kafka-topics --describe --topic topic-test --bootstrap-server broker:29092
- broker에서 kafka-topics를 실행해서 topic만들기
$ docker compose -p kafka-cluster exec broker /bin/bash
- broker의 터미널 실행
- cmd창을 두 개 켜서 하나는 broker 터미널에서 consumer 실행, 하나는 producer 실행해서 통신해볼 수 있다.
References
https://mlops-for-mle.github.io/tutorial/docs/kafka/producer-consumer
'Data Engineering' 카테고리의 다른 글
[Kafka] Docker에서 Kafka Multi Broker Cluster 구성하기 (1) | 2023.03.22 |
---|---|
[Kafka] Docker로 Producer, Consumer 통신하기 (Python) (0) | 2023.03.22 |
[ETL/ELT] 개념 (0) | 2023.03.14 |
[PostgreSQL] psql 기본 명령어 (0) | 2023.01.24 |
[ElasticSearch] Document API: GET, POST, DELETE (0) | 2023.01.11 |