【问题标题】:How do I set auto.create.topics.enable=true in docker image johnnypark/kafka-zookeeper so that new topics are created automatically?如何在 docker image johnnypark/kafka-zookeeper 中设置 auto.create.topics.enable=true 以便自动创建新主题?
【发布时间】:2022-04-19 00:05:09
【问题描述】:

在 docker 镜像 johnnypark/kafka-zookeeper 中不会自动创建新主题。如何在这个 docker 镜像johnnypark/kafka-zookeeper 中设置 auto.create.topics.enable=true 以便自动创建新主题?

【问题讨论】:

    标签: docker apache-kafka


    【解决方案1】:

    如果您使用 Kafka 的 wurstmeister 映像,您可以添加 KAFKA_CREATE_TOPICS 环境变量以在运行容器时自动创建主题。

    您的 docker-compose 文件可能如下所示:

    version: "2"
    
    
    Services:
    
    kafka-1:
    image: confluentinc/cp-kafka:latest
    
    ports:
      - "19092:19092"
    depends_on:
      - zookeeper-1
      - zookeeper-2
      - zookeeper-3
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper-1:12181,zookeeper-2:22181,zookeeper-3:32181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-1:19092
      KAFKA_CREATE_TOPICS: "topic1:1:1,topic2:1:1"
    

    第一个参数是partionions的数量,第二个是replication factor。对于上述 kafka 配置,主题将有 1 个分区和 1 个复制因子。你可以了解更多here

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 注意 - 在同一个容器中运行两个服务是不好的做法。 Bitnami 或 Confluent 图像会定期更新并支持生产
      • 这个环境变量没有给出想要的结果,因为它没有在配置中添加“auto.create.topics.enable=true”,而是“\nauto.create.topics.enable=true” “!
      • 感谢您建议在我的单元测试中使用两个容器而不是一个。但是,在单元测试中,我使用单个容器更方便。我的问题正是这个。在生产中,我不需要任何用于 kafka 的容器,也不需要自动创建主题。
      • 不知道为什么这被否决了。我无法控制其他人代码中的错误。如果这不起作用,请使用其他容器。 fast-data-dev 就是一个例子。您应该也可以在测试中使用撰写文件
      • 注意:你应该能够在容器中挂载你自己的服务器属性文件来设置你需要的任何属性
      猜你喜欢
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      • 2019-12-20
      • 2021-02-28
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多