Kafka 를 세팅하는 방법에는 여러가지가 있다.
1. on premise 로 직접 설치
2. docker 로 하나씩 띄우기
3. docker compose 로 한번에 띄우기
4. K8S 내 yaml 로 띄우기
5. K8S 내 kustomise 로 띠우기
6. K8S 내 helm 으로 직접 설치하기
이글에서는 다양한 방법중 docker compose 를 이용하여 local 환경에서 가볍게 세팅하는 방법에 대해 알아보겠다.
우선 docker compose 를 사용하기 위한 설치는 필수!!
(brew setting 은 필수!!(mac 기준이다.)
brew install cask docker
설치한 다음
docker -v 와
docker-compose -v 명령어를 실행하여 제대로 설치가 되었는지 확인해보자!
이미 docker 설치는 되었는데 docker compose 설치가 안되었으면
brew install cask docker-compose
를 실행하여 docker-compose 를 설치해준다!
제대로 설치되었으면, 위의 버전 명령어를 입력했을 시 제대로된 버전정보가 표시될 것이다.
(명령어를 인식하면 끝)
그럼 kafka를 docker-compose 기반으로 띄워보자!~
참고로 kafka 의 구성은 main 의 역할인 kafka와 헬스체크 등 보조적인 역할인 zookeeper 가있다.
(최근에 zookeeper 의 의존성을 없애기 위해 kafka 단독으로 개발하여 나온 툴이 있는데,
zookeeper 대비 개선점은 확인되지 않는다.)
version: "1"
services:
zookeeper:
image: confluentinc/cp-zookeeper:latest
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 3000
ZOOKEEPER_INIT_LIMIT: 5
ZOOKEEPER_SYNC_LIMIT: 2
ZOOKEEPER_SERVER_ID: 1
kafka-cluster1:
image: confluentinc/cp-kafka:latest
ports:
- "9092:9092"
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-cluster1:29092,EXTERNAL://localhost:9092
KAFKA_NUM_PARTITIONS: 5
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
kafka-cluster2:
image: confluentinc/cp-kafka:latest
ports:
- "9093:9093"
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-cluster2:29093,EXTERNAL://localhost:9093
KAFKA_NUM_PARTITIONS: 5
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
kafka-cluster3:
image: confluentinc/cp-kafka:latest
ports:
- "9094:9094"
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 3
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: INTERNAL
KAFKA_ADVERTISED_LISTENERS: INTERNAL://kafka-cluster3:29094,EXTERNAL://localhost:9094
KAFKA_NUM_PARTITIONS: 5
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
위의 docker compose 파일(파일명: docker-compose-kafka.yml)을 실행하려면
docker-compose -f docker-compose-kafka.yml up -d
를 입력하면 된다.
위에서 보면 알겠지만,
기본적인 config setting 은 docker compose 내부에 입력하여 컨테이너를 띄울때 해당 값으로
띄울 수 있고, 매번 들어가서 세팅할 필요가 없다는 장점이 있다!
'AMQP > Kafka' 카테고리의 다른 글
KRaft 사용하여 Kafka 컨테이너 띄우기 (0) | 2025.03.07 |
---|---|
카프카는 어떻게 빠른 속도를 보이는 것인가? ( Kafka Buffer Pool ) (0) | 2025.02.21 |
Kafka 세팅 시 참고할 만한 내용정리 (1) | 2024.10.01 |