Apache kafka, 카프카에만 집중하기 위해 도커(도커컴포즈), spring-boot 등에 대한 설명은 최대한 필요한 것 만 포함시켰다.
docker version
으로 설치 확인을 한 번 진행하자docker search kafka
로 가장 인기있는 카프카 이미지를 다운로드 받자wurstmeister image와 confluentinc 그리고 apache까지,, 오피셜 이미지가 많아졌다.
엄청나게 큰 차이가 있지는 않다. 다만 설정 환경변수값에 대한 설정차이는 존재한다.
그리고 아래와 같은 자료도 볼 수 있었다.
I contribute to both. As well as bitnami/kafka and debezium/kafka
Both are open source. Both are documented (2) (3)
Both work with the entire Confluent Platform.
Confluent's actually work better in Mesos/k8s/Nomad than wurstmeisters, which mostly just work in the Swarm
The Confluent (and Bitnami) ones are actually built and tested nightly, as compared to these, which are done manually, AFAICT
출처: https://github.com/wurstmeister/kafka-docker/issues/587#issuecomment-627975311
docker-compose up -d
를 통해 실행하고, 컨테이너 실행 상태를 docker container ls
통해 체크하자.
docker-compose stop
를 통해 멈출 수 있다. 역시 이미지 공식 문서에 나와 있다.위 도커 이미지를 실행한 컨테이너의 shell에 접근하자. 우리가 접근할 컨테이너는 "wurstmeister/kafka:2.12-2.5.0" 이미지 이다. docker exec -it 95a54 /bin/bash # -it옵션 뒤에 붙는 것은 실행시킨 컨테이너 id 앞 5자리이다.
를 통해 shell에 접근하자.
ps) -it 옵션은 STDIN 표준 입출력을 열고 가상 tty (pseudo-TTY) 를 통해 접속하겠다는 의미이다.
그리고 아래 명령어와 결과를 체크해보자!
$ cd /bin # 원활한 test를 위해 우선 bin 디렉토리로 가자
$ kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092
$ kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092
Topic:quickstart-events PartitionCount:1 ReplicationFactor:1 Configs:
Topic: quickstart-events Partition: 0 Leader: 0 Replicas: 0 Isr: 0
--create
--topic
--describe
--bootstrap-server
--replication-factor
--partitions
$ kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092 # 얘를 치면 서버 접속해서 '>' 만 뜨게 되어 있다. 당황하지 말고 추가할 이벤트 추가해보자.
> This is my first event
> This is my second event
# Ctrl + C로 exit 가능하다!
$ kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092 # 얘를 치면 위에서 서버에 접속 해서 보낸 event를 확인할 수 있다.
This is my first event
This is my second event