Book-Review/Programing
실전 카프카 개발부터 운영까지 (2) - 카프카 환경 구성
GeonWoo Kim
2022. 8. 31. 13:50
카프카 도커 컴포즈 설정
# 로컬 PC의 메모리 부족 이슈로 브로커들이 안뜰수도 있다.
# 수를 조정해가면서 개발환경을 구축하자.
version: '3.6'
services:
zookeeper:
container_name: zookeeper
image: confluentinc/cp-zookeeper:6.1.2
volumes:
- "./zookeeper/data:/data"
- "./zookeeper/logs:/datalog"
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TIME_TICK: 2000 # Ephemeral Node의 헬스 체크 간격
kafka1:
container_name: kafka1
image: confluentinc/cp-kafka:6.1.2
restart: on-failure
ports:
- "9092:9092"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
depends_on:
- zookeeper
kafka2:
container_name: kafka2
image: confluentinc/cp-kafka:6.1.2
restart: on-failure
ports:
- "9093:9092"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9093
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
depends_on:
- zookeeper
kafka3:
container_name: kafka3
image: confluentinc/cp-kafka:6.1.2
restart: on-failure
ports:
- "9094:9092"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
KAFKA_BROKER_ID: 4
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9094
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 2
depends_on:
- zookeeper
2.3 5분 만에 카프카 맛보기
- 카프카의 기본적 역할 - 데이터 버스
- 프로듀서: 카프카에 메시지를 보내주는 쪽
- 컨슈머: 카프카에서 메시지를 소비하는 쪽
- 코디네이터: 주키퍼
2.3.2 메세지 주고 받기
- 토픽생성
- 프로듀스
- 컨슘
./kafka-topics --bootstrap-server localhost:9092 --create --topic test --partitions 1 --replication-factor 1
./kafka-console-consumer --bootstrap-server localhost:9092 --topic test
./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test