用N个分区创建Kafka主题

时间:2018-10-09 11:03:21

标签: c# apache-kafka confluent-kafka

我正在使用Confluent Kafka DotNet lib创建并产生主题:

producer.ProduceAsync(topic, key, message);

不存在该主题时,将使用一个分区自动创建该主题。

但是出于测试目的,我希望能够以编程方式创建具有 N 个分区的主题。

我在这里找不到任何示例(分支0.11.5),如何创建具有多个分区的主题? https://github.com/confluentinc/confluent-kafka-dotnet

1 个答案:

答案 0 :(得分:0)

因为我已经在使用Docker,所以我发现最简单的方法是在docker-compose中创建一个带有N个分区的测试主题:

  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: kafka
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "PartitionsTest:3:1"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    links:
      - zookeeper

哪个创建带有3个分区的主题“ PartitionsTest”。

警告:您的测试可能会在主题有时间自行创建之前执行。

一旦Confluent Kafka库的发行版中提供了Admin功能,我可能会对其进行更新以使用该方法。