使用 docker 启动 kafka 服务 without zookeeper

创建日期: 2023-12-12 16:06 | 作者: 风波 | 浏览次数: 15 | 分类: Kafka

简化配置:

version: "3"
services:
  shezheng_kafka:
    image: 'bitnami/kafka:3.2'
    hostname: shezheng_kafka
    container_name: shezheng_kafka
    volumes:
      - ./data/kafka:/bitnami/kafka
    user: root
    network_mode: bridge
    ports:
     - '19092:9092'
    environment:
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 # 服务端监听的地址
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://shezheng_kafka:9092
      - KAFKA_BROKER_ID=1
      - KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@shezheng_kafka:9093
      - ALLOW_PLAINTEXT_LISTENER=yes
      - AUTO_CREATE_TOPICS=true
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.103.22:19092 # 客户端连接的地址
      - KAFKA_NUM_PARTITIONS=51

来源:https://medium.com/@14407744/set-up-kafka-cluster-with-zookeeper-and-without-zookeeper-6bcd96fdc74

不依赖于 zookeeper 的方案。

version: "3"
services:
  kafka1:
    image: 'bitnami/kafka:3.3.1'
    hostname: kafka1
    container_name: kafka1
    volumes:
      - ./kafka-cluster-without-zk/kafka1/data:/var/lib/kafka/data
    user: root
    ports:
     - '9092:9092'
    environment:
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka1:9092
      - KAFKA_BROKER_ID=1
      - KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093;2@kafka2:9095;3@kafka3:9097
      - ALLOW_PLAINTEXT_LISTENER=yes

  kafka2:
    image: 'bitnami/kafka:3.3.1'
    hostname: kafka2
    container_name: kafka2
    volumes:
      - ./kafka-cluster-without-zk/kafka2/data:/var/lib/kafka/data
    user: root
    ports:
      - '9094:9094'
    environment:
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9094,CONTROLLER://:9095
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka2:9094
      - KAFKA_BROKER_ID=2
      - KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093;2@kafka2:9095;3@kafka3:9097
      - ALLOW_PLAINTEXT_LISTENER=yes

  kafka3:
    image: 'bitnami/kafka:3.3.1'
    hostname: kafka3
    container_name: kafka3
    volumes:
      - ./kafka-cluster-without-zk/kafka3/data:/var/lib/kafka/data
    user: root
    ports:
      - '9096:9096'
    environment:
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9096,CONTROLLER://:9097
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka3:9096
      - KAFKA_BROKER_ID=3
      - KAFKA_KRAFT_CLUSTER_ID=LelM2dIFQkiUFvXCEcqRWA
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093;2@kafka2:9095;3@kafka3:9097
      - ALLOW_PLAINTEXT_LISTENER=yes

来源:https://www.confluent.io/blog/kafka-listeners-explained/

15 浏览
13 爬虫
0 评论