Önce ağ yaratlım:
docker network create kafka-sebeke --driver bridge
Zookeeper sunucusunu ayaklandıracağız:
docker run -d --name zookeeper \
--network kafka-sebeke \
-e ALLOW_ANONYMOUS_LOGIN=yes \
bitnami/zookeeper:latest
Kafka Sunucusunu ayaklandır:
docker run -d --name kafka \
--network kafka-sebeke \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper-server:2181 \
bitnami/kafka:latest
Kafka Drop kuralım:
docker run -d --rm \
-p 9000:9000 \
--network kafka-sebeke \
-e KAFKA_BROKERCONNECT=kafka:9092 \
-e SERVER_SERVLET_CONTEXTPATH="/" \
obsidiandynamics/kafdrop:latest
Bu da docker-compose.yml dosyası:
version: '3'
services:
zookeeper:
image: bitnami/zookeeper:latest
container_name: zookeeper
hostname: zookeeper
environment:
ALLOW_ANONYMOUS_LOGIN: 'yes'
networks:
- kafka-sebeke
kafka:
image: bitnami/kafka:latest
container_name: kafka
hostname: kafka
environment:
ALLOW_PLAINTEXT_LISTENER: 'yes'
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
networks:
- kafka-sebeke
kafdrop:
image: obsidiandynamics/kafdrop:latest
container_name: kafdrop
hostname: kafdrop
ports:
- "9000:9000"
environment:
KAFKA_BROKERCONNECT: kafka:9092
SERVER_SERVLET_CONTEXTPATH: /
networks:
- kafka-sebeke
networks:
kafka-sebeke:
driver: bridge
Kümelenmiş şekilde Kafka sunucularını ayaklandıralım:
version: '3.8'
services:
zookeeper:
image: bitnami/zookeeper:latest
container_name: zookeeper
ports:
- "2181:2181"
environment:
- ZOOKEEPER_CLIENT_PORT=2181
- ZOOKEEPER_TICK_TIME=2000
- ALLOW_ANONYMOUS_LOGIN=yes
networks:
- kafka-network
kafka1:
image: bitnami/kafka:latest
container_name: kafka1
depends_on:
- zookeeper
ports:
- "9092:9092"
environment:
- KAFKA_BROKER_ID=1
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka1:9092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- ALLOW_PLAINTEXT_LISTENER=yes
networks:
- kafka-network
kafka2:
image: bitnami/kafka:latest
container_name: kafka2
depends_on:
- zookeeper
ports:
- "9093:9092"
environment:
- KAFKA_BROKER_ID=2
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka2:9092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- ALLOW_PLAINTEXT_LISTENER=yes
networks:
- kafka-network
kafka3:
image: bitnami/kafka:latest
container_name: kafka3
depends_on:
- zookeeper
ports:
- "9094:9092"
environment:
- KAFKA_BROKER_ID=3
- KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
- KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka3:9092
- KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
- KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=3
- ALLOW_PLAINTEXT_LISTENER=yes
networks:
- kafka-network
kafkadrop:
image: obsidiandynamics/kafdrop
container_name: kafkadrop
ports:
- "9000:9000"
depends_on:
- kafka1
- kafka2
- kafka3
environment:
- KAFKA_BROKER_CONNECT=kafka1:9092,kafka2:9093,kafka3:9094
networks:
- kafka-network
networks:
kafka-network:
name: kafka-network
driver: bridge
container_name: kafdrop