티스토리 뷰

반응형

종종 Spring Boot 로 Kafka를 사용하는 테스트를 간단하게 하는데, zookeeper를 실행하고 kafka를 실행하는 서버 방식으로 하다보니 너무 귀찮았다.
그래서 docker container를 이용해서 kafka를 설치해보고 간단한 Kafka 테스트도 진행해보려고 한다.
 
배포가 아닌 단일호스트에서 간단한 테스트를 위한 용도, 그리고 설치 삭제가 간편한 이점 때문에 docker compose를 사용하고자 한다.
(kafka는 설치가 아닌 실행으로 동작하지만 mysql과 같은 데이터베이스를 구성할때도 container를 활용하면 매우 간편하다)

docker compose를 먼저 설치한다.
 
docker-compose.yaml 을 작성한다.
작성은 아래 github을 참조해서 작성했다.
https://github.com/wurstmeister/kafka-docker

 

GitHub - wurstmeister/kafka-docker: Dockerfile for Apache Kafka

Dockerfile for Apache Kafka. Contribute to wurstmeister/kafka-docker development by creating an account on GitHub.

github.com

 
docker-compose.yaml

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

 
docker-compuse up -d
d 옵션을 넣어서 백그라운드로 실행한다.
 
 
docker-compose ps 로 조회

 wanbaep > ~/TOY/docker-compose-kafka  docker-compose ps
NAME                IMAGE                    COMMAND                  SERVICE             CREATED             STATUS              PORTS
kafka               wurstmeister/kafka       "start-kafka.sh"         kafka               7 hours ago         Up 7 hours          0.0.0.0:9092->9092/tcp
zookeeper           wurstmeister/zookeeper   "/bin/sh -c '/usr/sb…"   zookeeper           7 hours ago         Up 7 hours          22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp

 
 
 mac 피씨의 9092포트와 kafka docker container 내부 포트 9092를 연결하도록 설정했기 때문에 Spring Boot 를 로컬에서 바로 실행해서 연결할 수 있다.

topic 생성

 wanbaep ~ > docker exec -it kafka bash
 
root@9716ab3aeb82:~# kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list

root@9716ab3aeb82:/# kafka-topics.sh --create --topic test --bootstrap-server 127.0.0.1:9092 --replication-factor 1 --partitions 1
Created topic test.

root@9716ab3aeb82:~# kafka-topics.sh --bootstrap-server 127.0.0.1:9092 --list
test

 

Producer

root@9716ab3aeb82:/# kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 --topic test
>hello
>This is producer

 

Consumer

root@9716ab3aeb82:~# kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning
hello
This is producer

 

console producer와 consumer를 이용해서 정상적으로 토픽이 생성되고 메시지가 생성, 소비 되는지 간단하게 테스트까지만 해봤다.

반응형

'Kafka' 카테고리의 다른 글

[Kafka] Spring Boot 프로젝트 Apache Kafka Binder 예제  (0) 2024.03.15
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함