首页 > 解决方案 > 创建具有 N 个分区的 Kafka 主题

问题描述

我正在使用 Confluent Kafka DotNet lib 来创建和生成主题:

producer.ProduceAsync(topic, key, message);

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

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

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

标签: c#apache-kafkaconfluent-platform

解决方案


由于我已经在使用 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 库的发布版本中提供了管理功能,我可能会对其进行更新以使用该方法。


推荐阅读