꾸물꾸물 졔의 개발공부
Kafka(4) - Kafka Docker 설치 본문
Docker 컨테이너로 kafka 를 설치하였다.
- Ubuntu 20.04 LTS
- Docker version 20.10.21, build baeda1f
docker 컨테이너에 zookeeper 까지 한번에 설치할 수 있는 https://hub.docker.com/r/bitnami/kafka 를 사용하였다.
$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-kafka/master/docker-compose.yml > docker-compose.yml
$ docker-compose up -d
docker-compose.yml
( kafka 설치 시 자동으로 작성되지만, 약간의 수정을 하였다. )
version: "2"
services:
zookeeper:
image: docker.io/bitnami/zookeeper:3.8
ports:
- "2181:2181"
volumes:
- "zookeeper_data:/bitnami"
environment:
- ALLOW_ANONYMOUS_LOGIN=yes
kafka:
image: docker.io/bitnami/kafka:3.1
hostname: kafka
ports:
- "8892:9092"
volumes:
- "kafka_data:/bitnami"
environment:
KAFKA_LISTENERS: PLAINTEXT://:9092
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://공인IP:8892
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
ALLOW_PLAINTEXT_LISTENER: yes
depends_on:
- zookeeper
volumes:
zookeeper_data:
driver: local
kafka_data:
driver: local
KAFKA_LISTENERS & KAFKA_ADVERTISED_LISTENERS 설정
- KAFKA_ADVERTISED_LISTENERS
- kafka는 초기연결시에 해당 설정 주소를 노출시키고, client가 연결해서 접근
- 즉, 해당 주소를 통해 외부에서 kafka 클러스터에 접속이 가능하다.
- {외부에서 접속가능한 공인 IP} : { 외부 접속 port }
- KAFKA_LISTENERS
- kafka 내부 클러스터 커뮤니케이션 발생시키는 설정
- {내부 IP (localhost)} : { 내부 kafka port }
KAFKA Port forwarding 포트 포워딩
외부에서 내부 Kafka 도커 컨테이너에 접속하기 위해서, 포트 포워딩을 통해 외부-내부 주소를 연결하였다.
- ports : "8892:9092"
- 외부에서 8892번 포트로 접근 → 컨테이너의 kafka 9092번 포트로 포워딩 → kafka 접속
ex ) 공인 IP : 8892 로 접속하면 됨
docker-compose up -d 명령어로 docker-compose.yml 파일을 읽어들여 zookeeper 와 kafka 컨테이너를 실행한다.
+ Springboot 의 application.yml
spring:
kafka:
bootstrap-servers: 52.79.215.19:8892
외부 ( spring ) 에서 다음 주소로 Docker 컨테이너의 kafka로 접속
'Database > Kafka' 카테고리의 다른 글
Reactive Kafka - Sender , Springboot (0) | 2022.11.23 |
---|---|
Kafka(5) - Kafka Docker 사용법 (0) | 2022.11.23 |
Kafka(3) - Consumer 컨슈머 (0) | 2022.11.23 |
Kafka(2) - Producer 프로듀서 (0) | 2022.11.22 |
Kafka(1) - Kafka 란 ? (0) | 2022.11.22 |