]> juplo.de Git - demos/kafka/training/commitdiff
Setup für Docker Compose auf Image `apache/kafka` und KRAFT umgestellt
authorKai Moritz <kai@juplo.de>
Fri, 13 Mar 2026 18:07:34 +0000 (19:07 +0100)
committerKai Moritz <kai@juplo.de>
Fri, 13 Mar 2026 19:58:38 +0000 (20:58 +0100)
docker/docker-compose.yml

index 1487aa9177db1c23a5cb8dbc7e0ff58d10cfec61..f5ec39364ae64b950bc9993bc086d73e0cf1dba5 100644 (file)
@@ -1,46 +1,42 @@
 services:
-  zookeeper:
-    image: confluentinc/cp-zookeeper:7.8.0
-    environment:
-      ZOOKEEPER_CLIENT_PORT: 2181
-    ports:
-      - 2181:2181
-    volumes:
-      - zookeeper-data:/var/lib/zookeeper/data
-      - zookeeper-log:/var/lib/zookeeper/log
-
   kafka-1:
-    image: confluentinc/cp-kafka:7.8.0
+    image: apache/kafka:4.1.1
     environment:
-      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
-      KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9081
-      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
+      KAFKA_NODE_ID: 1
+      KAFKA_PROCESS_ROLES: broker, controller
+      KAFKA_LISTENERS: CONTROLLER://:9093, BROKER://:9092, LOCALHOST://:9081
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-1:9092, LOCALHOST://localhost:9081
-      KAFKA_BROKER_ID: 1
       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
+      CLUSTER_ID: 4L6g3nShT-eMCtK--X86sw
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
       KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 1000
+      KAFKA_LOG_DIRS: /var/lib/kafka/data
     volumes:
       - kafka-1-data:/var/lib/kafka/data
     ports:
       - 9081:9081
     stop_grace_period: 120s
-    depends_on:
-      - zookeeper
 
   kafka-2:
-    image: confluentinc/cp-kafka:7.8.0
+    image: apache/kafka:4.1.1
     environment:
-      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
-      KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9082
-      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
+      KAFKA_NODE_ID: 2
+      KAFKA_PROCESS_ROLES: broker, controller
+      KAFKA_LISTENERS: CONTROLLER://:9093, BROKER://:9092, LOCALHOST://:9082
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-2:9092, LOCALHOST://localhost:9082
-      KAFKA_BROKER_ID: 2
       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
+      CLUSTER_ID: 4L6g3nShT-eMCtK--X86sw
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
       KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 1000
+      KAFKA_LOG_DIRS: /var/lib/kafka/data
     volumes:
       - kafka-2-data:/var/lib/kafka/data
     ports:
@@ -51,28 +47,28 @@ services:
         aliases:
           - kafka
     stop_grace_period: 120s
-    depends_on:
-      - zookeeper
 
   kafka-3:
-    image: confluentinc/cp-kafka:7.8.0
+    image: apache/kafka:4.1.1
     environment:
-      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
-      KAFKA_LISTENERS: BROKER://:9092, LOCALHOST://:9083
-      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT, LOCALHOST:PLAINTEXT
+      KAFKA_NODE_ID: 3
+      KAFKA_PROCESS_ROLES: broker, controller
+      KAFKA_LISTENERS: CONTROLLER://:9093, BROKER://:9092, LOCALHOST://:9083
       KAFKA_ADVERTISED_LISTENERS: BROKER://kafka-3:9092, LOCALHOST://localhost:9083
-      KAFKA_BROKER_ID: 3
       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
+      CLUSTER_ID: 4L6g3nShT-eMCtK--X86sw
       KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
       KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
       KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 1000
+      KAFKA_LOG_DIRS: /var/lib/kafka/data
     volumes:
       - kafka-3-data:/var/lib/kafka/data
     ports:
       - 9083:9083
     stop_grace_period: 120s
-    depends_on:
-      - zookeeper
 
   cli:
     image: juplo/toolbox
@@ -136,8 +132,6 @@ services:
       - kafka-3
 
 volumes:
-  zookeeper-data:
-  zookeeper-log:
   kafka-1-data:
   kafka-2-data:
   kafka-3-data: