[Kafka] Docker 로 Kafka 설치하기
- ⭐ Development/Tools & 개발 설정
- 2021. 11. 10.
Docker 로 Kafka 를 local 에 세팅하자
1. docker-compose.yml 작성
version: '2'
services:
zookeeper:
container_name: zookeeper
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
container_name: kafka
image: wurstmeister/kafka
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_PORT: 9092
KAFKA_CREATE_TOPICS: "test-topic:1:1"
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- 가장 많이 사용하는 wurstmeister 이미지 사용
- zookeeper 1 대로 설정하였다.
- KAFKA_ADVERTISED_HOST_NAME: host
- KAFKA_ADVERTISED_PORT : port number
KAFKA_CREATE_TOPICS
"test-topic" 라는 topic 을 생성한다.
TopicName:Partition개수:Replica개수- KAFKA_ZOOKEEPER_CONNECT: zookeeper 정보
- 참고 : https://github.com/wurstmeister/kafka-docker
2. docker 실행 및 container 접속
컨테이너를 생성 / 실행
docker-compose -f docker-compose.yml up -d
docker ps -a
Docker kafka container 접속
docker exec -it kafka /bin/bash
docker exec -it [컨테이너명] /bin/bash
3. Kafka Topic
topic 생성
kafka-topics.sh --create --topic sample-topic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1
kafka-topics.sh
: kafka-topics.sh shell script
--create : topic 생성
--topic : topic 명
--bootstarap.server : host:port, 대상 카프카 클러스터
--replication-factor : replica 갯수 지정 (복제본의 수)
--partitions : paritions 갯수 지정 (토픽을 몇개로 나눌 것인가)
topic 확인
// topic 목록 확인
kafka-topics.sh --list --bootstrap-server localhost:9092
// 상세 확인
kafka-topics.sh --describe --topic sample-topic --bootstrap-server localhost:9092
4. Producer - 메시지 전송
$ kafka-console-producer.sh --topic sample-topic --bootstrap-server localhost:9092
This is my first event
This is my second event
kafka-console-producer.sh
: producer shell script
5. Consumer - 메시지 읽기
$ kafka-console-consumer.sh --topic sample-topic --bootstrap-server localhost:9092 --from-beginning
This is my first event
This is my second event
kafka-console-consumer.sh
: consumer shell script
--from-beginning : 어디서부터 메시지를 가지고 올지 정의
6. 마치며
Docker 로 카프카를 설치하고 topic 생성 후 shell 을 실행하여 producer, consumer 동작을 확인해보자.
참고
https://kafka.apache.org/quickstart
https://soyoung-new-challenge.tistory.com/61
https://server-engineer.tistory.com/846
반응형