Files
playground/docker-compose-kraft.yml
XuanLee-HEALER df39693dff commit
2025-11-10 15:30:21 +08:00

33 lines
1.3 KiB
YAML

services:
kafka:
image: apache/kafka:4.0.0
container_name: kafka-apache-kraft-410
hostname: kafka-kraft
ports:
- "9092:9092" # 映射 Broker 端口
environment:
KAFKA_LOG4J_OPTS: "-Dlog4j.configurationFile=file:/opt/kafka/config/custom-log4j2.yaml"
KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: "broker,controller"
# 2. 监听器配置
KAFKA_LISTENERS: "PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093"
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://localhost:9092"
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT"
KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
# 3. Controller 连接信息(单节点)
KAFKA_CONTROLLER_QUORUM_VOTERS: "1@kafka-kraft:9093"
KAFKA_LOG_DIRS: "/var/lib/kafka/data"
# 为内部 topic __consumer_offsets 设置副本因子为 1
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
# (可选,推荐) 事务状态 topic 的副本因子也设置为 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
volumes:
- ./kafka-data:/var/lib/kafka/data # 数据持久化
- ./log4j2.yaml:/opt/kafka/config/custom-log4j2.yaml:ro # 日志级别配置
restart: always