1. 도커 컴포즈 파일을 작성한다.
docker-compse.yml
version: '3'
services:
# wurstmeister/zookeeper:3.4.6
zookeeper:
hostname: zookeeper
container_name: zookeeper
image: wurstmeister/zookeeper:3.4.6
ports:
- "2181:2181"
# wurstmeister/kafka:2.13-2.8.1
kafka:
hostname: kafka
container_name: kafka
image: wurstmeister/kafka:2.13-2.8.1
environment:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CREATE_TOPICS: "test:1:1"
ports:
- "9092:9092"
depends_on:
- zookeeper
도커컴포즈를 실행한다.
docker-compose up -d
도커 컨테이너들이 잘 실행됐는지 확인한다.
docker ps
2. 카프카 접속
카프카 컨테이너에 접속하자
docker exec -it kafka bash
3. 카프카 명령어 입력
현재 카프카의 토픽 리스트를 조회해보자
kafka-topics.sh --list --bootstrap-server kafka:9092
현재 test 라는 토픽이 있는 것으로 확인이 된다.
나는 topic-test 라는 토픽을 만들어보자.
kafka-topics.sh --create --bootstrap-server kafka:9092 replication-factor 1 --partitions 1 --topic topic-test
다시 토픽리스트를 조회해보자
topic-test 라는 토픽이 잘 생성됐다.
topic-test 토픽을 삭제하는 명령어를 입력해보자
kafka-topics.sh --delete --zookeeper zookeeper:2181 --topic topic-test
뭔가 정상적으로 제거되지 않은 것 같다.
토픽 리스트를 조회해보자
kafka-topics.sh --list --bootstrap-server kafka:9092
토픽 리스트 조회 명령어에서는 보이지 않는다.
같은 이름의 토픽을 생성해보자.
kafka-topics.sh --create --bootstrap-server kafka:9092 replication-factor 1 --partitions 1 --topic topic-test
잘 생성됐다.
리스트를 조회해보자
kafka-topics.sh --list --bootstrap-server kafka:9092
현재 사용중인 카프카 이미지에서는 문제없이 잘 작동되지만,
이것은 카프카 설정에서
delete.topic.enable = true
이 내용을 추가해줘야되는 부분이다.
카프카 설정은 server.properties 이다.
'Data Engineering > Kafka' 카테고리의 다른 글
[kafka] 주키퍼 카프카를 도커컴포즈로 구축하는 방법 (0) | 2022.01.30 |
---|---|
[kafka] 주키퍼에서 카프카 토픽 확인하는 방법 (0) | 2021.12.26 |
[kafka] 카프카에서 토픽 생성하는 방법 (0) | 2021.12.26 |
[kafka] 도커의 각 컨테이너의 접속할 때 현재의 사용자계정을 확인하는 방법 whoami (0) | 2021.12.23 |
[kafka] 카프카 클러스터끼리 네트워크 연결 통신상태 확인하는 방법 (0) | 2021.12.23 |