docker-compose로 kafka와 zookeeper를 한번에 실행하기
로컬에서 테스트 목적이라면 Docker로 Kafka + Zookeeper를 한 번에 띄우는 게 훨씬 깔끔하고 안정적이기 때문에 선택
1. Homebrew 또는 바이너리 파일로 설정하는 방법과 Docker 설치 비교
항목 | Homebrew or 바이너리 | Docker |
설치 간편성 | 상대적으로 복잡 | docker-compose up 한 줄이면 끝 |
환경 설정 | JAVA_HOME, PATH, 버전 충돌 등 번거로움 | 컨테이너 내부에 다 들어 있음 |
제거 & 초기화 | 수동 삭제 필요 | docker rm, docker-compose down으로 깔끔하게 |
버전 전환 | 복잡 | 이미지 태그만 바꾸면 됨 |
고립성 | 호스트 환경에 의존 | 완전 격리된 실행 환경 |
2. docker-compose 파일 작성하기
# docker-compose.yml
version: '3'
services:
zookeeper:
image: confluentinc/cp-zookeeper:7.5.0
container_name: zookeeper
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
kafka:
image: confluentinc/cp-kafka:7.5.0
container_name: kafka
ports:
- "9092:9092"
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
2. docker-compose 파일 실행하기
# 위 yaml을 저장한 디렉토리에서 실행
docker-compose up -d
3. 사용하기
# 토픽 생성
docker exec kafka kafka-topics --create --topic test-topic \
--bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
# 메시지 보내기
docker exec -it kafka kafka-console-producer \
--bootstrap-server localhost:9092 --topic test-topic
# 메시지 읽기
docker exec -it kafka kafka-console-consumer \
--bootstrap-server localhost:9092 --topic test-topic --from-beginning
1) 토픽 생성
2) 프로듀서
3) 컨슈머
[Kafka] 맥북 m2 homebrew 카프카 설치
1. 설치하기아래 명령어 입력하면 끝!$ brew install kafka 2. 실행 1) 주키퍼(zookeeper) 실행주키퍼 실행 명령$./bin/zookeeper-server-start.sh ./config/zookeeper.properties 카프카 실행 하기 전 주키퍼 먼저 실행해야
k-sky.tistory.com