Kafka

Kafdrop

services:
  kafdrop:
    image: obsidiandynamics/kafdrop
    container_name: kafdrop
    ports:
      - "9000:9000"
    environment:
      KAFKA_BROKERCONNECT: "localhost:9092"
      SERVER_SERVLET_CONTEXTPATH: "/"
    restart: unless-stopped

KRaft 模式

services:
  kafka:
    image: apache/kafka:3.9.0
    container_name: kafka
    hostname: kafka

    ports:
      - "9092:9092"

    environment:
      KAFKA_NODE_ID: 1

      KAFKA_PROCESS_ROLES: broker,controller

      KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093

      # 注意:这里不要换行,不要逗号
      KAFKA_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093

      # 外部访问地址
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092

      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT

      KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER

      KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT

      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1

      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1

      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1

      CLUSTER_ID: MkU3OEVBNTcwNTJENDM2Qk

    volumes:
      - ./data:/var/lib/kafka/data

    restart: unless-stopped