Files
Work-configuration-file/kafka-cluster-docker/docker-compose.yml
2025-10-07 15:58:15 +08:00

116 lines
4.2 KiB
YAML

version: '3.8'
networks:
kafka-cluster-network:
driver: bridge
services:
kafka1:
image: apache/kafka:latest
container_name: kafka1
hostname: kafka1
networks:
- kafka-cluster-network
ports:
- "19092:9092"
volumes:
- ./broker1/data:/var/lib/kafka/data
- ./broker1/config:/mnt/shared/config
- ./broker1/secrets:/etc/kafka/secrets
- ./kafka-server-jaas.conf:/etc/kafka/kafka-server-jaas.conf
environment:
KAFKA_NODE_ID: 1
KAFKA_LISTENERS: PLAINTEXT://kafka1:9092,CONTROLLER://kafka1:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.8:19092
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
KAFKA_CLUSTER_ID: my-kafka-cluster
KAFKA_LOG_DIRS: /var/lib/kafka/data
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT
KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/kafka-server-jaas.conf
kafka2:
image: apache/kafka:latest
container_name: kafka2
hostname: kafka2
networks:
- kafka-cluster-network
ports:
- "19093:9092"
volumes:
- ./broker2/data:/var/lib/kafka/data
- ./broker2/config:/mnt/shared/config
- ./broker2/secrets:/etc/kafka/secrets
- ./kafka-server-jaas.conf:/etc/kafka/kafka-server-jaas.conf
environment:
KAFKA_NODE_ID: 2
KAFKA_LISTENERS: PLAINTEXT://kafka2:9092,CONTROLLER://kafka2:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.8:19093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
KAFKA_CLUSTER_ID: my-kafka-cluster
KAFKA_LOG_DIRS: /var/lib/kafka/data
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT
KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/kafka-server-jaas.conf
kafka3:
image: apache/kafka:latest
container_name: kafka3
hostname: kafka3
networks:
- kafka-cluster-network
ports:
- "19094:9092"
volumes:
- ./broker3/data:/var/lib/kafka/data
- ./broker3/config:/mnt/shared/config
- ./broker3/secrets:/etc/kafka/secrets
- ./kafka-server-jaas.conf:/etc/kafka/kafka-server-jaas.conf
environment:
KAFKA_NODE_ID: 3
KAFKA_LISTENERS: PLAINTEXT://kafka3:9092,CONTROLLER://kafka3:9093
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.1.8:19094
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_PROCESS_ROLES: broker,controller
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
KAFKA_CLUSTER_ID: my-kafka-cluster
KAFKA_LOG_DIRS: /var/lib/kafka/data
KAFKA_DEFAULT_REPLICATION_FACTOR: 3
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 3
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 2
KAFKA_MIN_INSYNC_REPLICAS: 2
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT
KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/kafka-server-jaas.conf
kafka-console-ui:
image: wdkang/kafka-console-ui
container_name: kafka-console-ui
networks:
- kafka-cluster-network
ports:
- "7766:7766"
volumes:
- ./console-ui/data:/app/data
- ./console-ui/log:/app/log
privileged: true
user: root