분산 이벤트 스트리밍 플랫폼
docker 환경에 Kafka 설정
docker-compose 설치
docker-ccompose
가 설치 되어있어야 한다.Docker-compose를 사용하기 위해 github에서 다운
git clone https://github.com/wurstmeister/kafka-docker.git
다운로드 후 compose.yml
파일을 수정 해야하며, broker
를 하나만 올려서 테스트 할 경우 docker-compose-single-broker.yml
을 수정해주면 되고 아닐경우 docker-compose.yml
파일을 수정.
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: [IP]
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
[IP]
에는 IP주소를 작성.
위 compose 파일을 보면 kafka
와zookeeper
그리고 port에 대한 설정이 있으며, 해당 내용을 저장하고 compose.yml
파일을 실행 시켜줘야한다.
docker-compose -f docker-compose.yml up
위 명령어를 실행하면 kafaka와 zookeeper container가 실행된걸 볼 수 있다.
docker ps
container가 실행되어 있으면 Kafka shell에 접근해야 하며 아래 명령어로 접근 가능
docker exec -it 4ed /bin/bash
kafka명령어를 사용하기 위해서 /opt/kafka/bin 으로 이동해야한다
위 경로로 이동하였으면 topic을 만들 명령어를 입력해주면 된다.
bash-5.1# ./kafka-topics.sh --bootstrap-server localhost:9092 --topic kafka_chatting --create
kafka_chatting
- topic이름(해당 부분에 원하는 topic명을 입력해주면 된다)
topic을 생성 하였으면 아래 명령어로 생성된 topic을 확인 할 수 있다.
bash-5.1# ./kafka-topics.sh --bootstrap-server localhost:9092 --list
docker exec -it 4ed kafka-console-producer.sh --topic test --broker-list localhost:9092
docker exec -it 4ed kafka-console-consumer.sh --topic test --bootstrap-server localhost:9092
Producer
Consumer