docker-compose kafka

kafka:
    image: apache/kafka:4.0.0
    container_name: kafka-4.0.0
    ports:
      - 9091:9091
      - 9092:9092
      - 9093:9093
    volumes:
      - ./kafka/kafka_server_jaas.conf:/etc/kafka/kafka_server_jaas.conf
      - ./kafka/logs:/tmp/kafka-logs
    environment:
      # KRaft 核心配置
      CLUSTER_ID: kafka-dev
      KAFKA_NODE_ID: 1
      KAFKA_PROCESS_ROLES: controller,broker
      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093

      # 单机配置
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

      # 安全协议映射
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: BROKER:PLAINTEXT,CLIENT:SASL_PLAINTEXT,CONTROLLER:PLAINTEXT
      
      # 监听器定义
      KAFKA_LISTENERS: BROKER://:9091,CLIENT://:9092,CONTROLLER://:9093
      KAFKA_ADVERTISED_LISTENERS: BROKER://localhost:9091,CLIENT://host.docker.internal:9092
      
      # 显式指定 Broker 间通信的监听器
      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
      KAFKA_INTER_BROKER_LISTENER_NAME: BROKER
      
      # SASL 认证配置
      KAFKA_SASL_ENABLED_MECHANISMS: PLAIN
      # KAFKA_SASL_MECHANISM_CONTROLLER_PROTOCOL: PLAIN
      # KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL: PLAIN
      KAFKA_OPTS: -Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf

posted @ 2025-07-09 10:46  yeyiu  阅读(47)  评论(0)    收藏  举报