티스토리 뷰
종종 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
- 애노테이션 프로세서
- Java 란
- 웹 애플리케이션
- WEB-INF
- MySQL 외부 IP
- Kafka
- 데스크톱 애플리케이션
- cpus
- minikube
- Servlet Container
- Spring Cloud Stream
- node add
- Java 장단점
- minikube node add
- ExpectedException
- Java 특징
- Servlet
- docker-compose
- Prometheus Operator
- DD파일
- kubernetes
- OneToOne
- consumer
- 애플리케이션 변화 과정
- StreamBridge
- springboot3.x
- ServiceMonitor
- 특정 ip
- producer
- 서버 클라이언트
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
