]> juplo.de Git - demos/kafka/training/commitdiff
Setup für Docker von COMBINED auf ISOLATED (mit einem Controller) umgestellt
authorKai Moritz <kai@juplo.de>
Fri, 13 Mar 2026 19:57:58 +0000 (20:57 +0100)
committerKai Moritz <kai@juplo.de>
Fri, 13 Mar 2026 19:58:41 +0000 (20:58 +0100)
docker/docker-compose.yml

index f5ec39364ae64b950bc9993bc086d73e0cf1dba5..5b5c10c786512afb7a9bfff1d1baaaba6840379f 100644 (file)
@@ -1,15 +1,32 @@
 services:
+  controller:
+    image: apache/kafka:4.1.1
+    environment:
+      KAFKA_NODE_ID: 0
+      KAFKA_PROCESS_ROLES: controller
+      KAFKA_LISTENERS: CONTROLLER://:9093
+      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
+      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT
+      KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
+      CLUSTER_ID: 4L6g3nShT-eMCtK--X86sw
+      KAFKA_SHARE_COORDINATOR_STATE_TOPIC_REPLICATION_FACTOR: 1
+      KAFKA_SHARE_COORDINATOR_STATE_TOPIC_MIN_ISR: 1
+      KAFKA_LOG_DIRS: /var/lib/kafka/data
+    volumes:
+      - controller-data:/var/lib/kafka/data
+    stop_grace_period: 120s
+
   kafka-1:
     image: apache/kafka:4.1.1
     environment:
       KAFKA_NODE_ID: 1
-      KAFKA_PROCESS_ROLES: broker, controller
-      KAFKA_LISTENERS: CONTROLLER://:9093, BROKER://:9092, LOCALHOST://:9081
+      KAFKA_PROCESS_ROLES: broker
+      KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9081
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-1:9092, LOCALHOST://localhost:9081
       KAFKA_INTER_BROKER_LISTENER_NAME: BROKER
       KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT, BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
-      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:9093,2@kafka-2:9093,3@kafka-3:9093
+      KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
       CLUSTER_ID: 4L6g3nShT-eMCtK--X86sw
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
@@ -20,18 +37,20 @@ services:
     ports:
       - 9081:9081
     stop_grace_period: 120s
+    depends_on:
+      - controller
 
   kafka-2:
     image: apache/kafka:4.1.1
     environment:
       KAFKA_NODE_ID: 2
-      KAFKA_PROCESS_ROLES: broker, controller
-      KAFKA_LISTENERS: CONTROLLER://:9093, BROKER://:9092, LOCALHOST://:9082
+      KAFKA_PROCESS_ROLES: broker
+      KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9082
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-2:9092, LOCALHOST://localhost:9082
       KAFKA_INTER_BROKER_LISTENER_NAME: BROKER
       KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT, BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
-      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:9093,2@kafka-2:9093,3@kafka-3:9093
+      KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
       CLUSTER_ID: 4L6g3nShT-eMCtK--X86sw
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
@@ -47,18 +66,20 @@ services:
         aliases:
           - kafka
     stop_grace_period: 120s
+    depends_on:
+      - controller
 
   kafka-3:
     image: apache/kafka:4.1.1
     environment:
       KAFKA_NODE_ID: 3
-      KAFKA_PROCESS_ROLES: broker, controller
-      KAFKA_LISTENERS: CONTROLLER://:9093, BROKER://:9092, LOCALHOST://:9083
+      KAFKA_PROCESS_ROLES: broker
+      KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9083
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-3:9092, LOCALHOST://localhost:9083
       KAFKA_INTER_BROKER_LISTENER_NAME: BROKER
       KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
       KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT, BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
-      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka-1:9093,2@kafka-2:9093,3@kafka-3:9093
+      KAFKA_CONTROLLER_QUORUM_VOTERS: 0@controller:9093
       CLUSTER_ID: 4L6g3nShT-eMCtK--X86sw
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
@@ -69,6 +90,8 @@ services:
     ports:
       - 9083:9083
     stop_grace_period: 120s
+    depends_on:
+      - controller
 
   cli:
     image: juplo/toolbox
@@ -132,6 +155,7 @@ services:
       - kafka-3
 
 volumes:
+  controller-data:
   kafka-1-data:
   kafka-2-data:
   kafka-3-data: