是否可以在 docker-compose 中创建 kafka 主题而无需额外服务?

问题描述 投票:0回答:1

我想在 docker-compose 启动时创建和配置 kafka 主题。我可以借助附加服务来完成此操作(请参阅 init-kafka)。

是否可以在没有额外服务的情况下创建kafka主题?我尝试在kafka服务中使用

command: kafka-topics.sh   --create   --bootstrap-server kafka:9092 --topic tasks_topic --partitions 3
,但没有成功

此代码对我有用:

version: "3.8"
    
services:
    zookeeper:
        image: bitnami/zookeeper:latest
        ports:
            - 2181:2181
        environment:
            - ALLOW_ANONYMOUS_LOGIN=yes

    kafka:
        image: bitnami/kafka:latest
        ports:
            - 9092:9092
            - 9093:9093
        environment:
            - KAFKA_BROKER_ID=1
            - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CLIENT://:9093
            - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,CLIENT://localhost:9093
            - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
            - ALLOW_PLAINTEXT_LISTENER=yes
            - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,PLAINTEXT:PLAINTEXT
            - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=CLIENT
        depends_on:
            - zookeeper
    
    init-kafka:
        image: bitnami/kafka:latest
        command: kafka-topics.sh   --create   --bootstrap-server kafka:9092 --topic tasks_topic --partitions 3

        depends_on:
            - kafka

apache-kafka docker-compose
1个回答
0
投票

有多种方法可以做到这一点。但你肯定可以通过

environment

进行创作
kafka:
    image: bitnami/kafka:latest
    ports:
        - 9092:9092
        - 9093:9093
    environment:
        - KAFKA_BROKER_ID=1
        - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CLIENT://:9093
        - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092,CLIENT://localhost:9093
        - KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
        - ALLOW_PLAINTEXT_LISTENER=yes
        - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,PLAINTEXT:PLAINTEXT
        - KAFKA_CFG_INTER_BROKER_LISTENER_NAME=CLIENT
        - KAFKA_CREATE_TOPICS: "tasks_topic1:3:1,another-topic:5:1"
    depends_on:
        - zookeeper

KAFKA_CREATE_TOPICS
是环境变量,容器启动时会自动创建Kafka主题。它使用格式
topic_name:partitions:replication_factor
.

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.