반응형
도커를 사용하여 Kafka 를 설치하는 방법
앞 장에서 로컬인 윈도우에 Kafka를 설치하였습니다. 로컬에 설치된 Kafka를 사용할 경우 이 과정은 생략하여도 됩니다.
추가로 도커를 사용하여 Kafka를 설치하는 방법을 설명하겠습니다.
- docker-compose.yml 파일을 다음과 같이 작성합니다.
version: "3.8"
services:
kafka-0:
image: bitnami/kafka:latest
container_name: kafka-0
user: root
ports:
- "10000:9094"
environment:
- KAFKA_CFG_NODE_ID=0
- KAFKA_KRAFT_CLUSTER_ID=M2fxHJLvSO2xWi1DpTnikg
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka-0:9093,1@kafka-1:9093,2@kafka-2:9093
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka-0:9092,EXTERNAL://192.168.219.116:10000
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
volumes:
- /kafka_data/kafka00:/bitnami/kafka
networks:
- elastic8
kafka-1:
image: bitnami/kafka:latest
container_name: kafka-1
user: root
ports:
- "10001:9094"
environment:
- KAFKA_CFG_NODE_ID=1
- KAFKA_KRAFT_CLUSTER_ID=M2fxHJLvSO2xWi1DpTnikg
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka-0:9093,1@kafka-1:9093,2@kafka-2:9093
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka-1:9092,EXTERNAL://192.168.219.116:10001
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
volumes:
- /kafka_data/kafka01:/bitnami/kafka
networks:
- elastic8
kafka-2:
image: bitnami/kafka:latest
container_name: kafka-2
user: root
ports:
- "10002:9094"
environment:
- KAFKA_CFG_NODE_ID=2
- KAFKA_KRAFT_CLUSTER_ID=M2fxHJLvSO2xWi1DpTnikg
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=0@kafka-0:9093,1@kafka-1:9093,2@kafka-2:9093
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093,EXTERNAL://:9094
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka-2:9092,EXTERNAL://192.168.219.116:10002
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,EXTERNAL:PLAINTEXT,PLAINTEXT:PLAINTEXT
- KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR=3
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
- KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE=true
volumes:
- /kafka_data/kafka02:/bitnami/kafka
networks:
- elastic8
networks:
elastic8:
external: true
- 터미널이나 cmd 창에서 docker-compose.yml 파일이 위치한 곳으로 이동 합니다.
- docker-compose up -d 명령어를 실행
- docker ps 명령어로 Kafka 서버가 실행 중인지 확인
(작성중)
반응형
'Web > 스프링부트(SpringBoot Framework)' 카테고리의 다른 글
(1) @Autowired와 @Bean 차이점 (0) | 2024.10.05 |
---|---|
(1) Kafka, Spring Boot, 리액트를 사용하여 쇼핑몰 사용자의 결제정보 실시간 처리 구현하기 (0) | 2024.07.18 |
(3) @RequestParam과 @PathVariable 차이점 (0) | 2024.07.15 |
(2) @Autowired와 @AllArgsConstructor 차이점 (0) | 2024.07.15 |
(1) @AllArgsConstructor과 @NoArgsConstructor 차이점 (0) | 2024.07.15 |