在 nodeJS 中创建主题时将领导者分配给 kafka 主题的分区

Assign leader to partitions of kafka topic while creating topics in nodeJS

我有一个 kafka 代理,正在使用 kafka-node 在 nodeJS 中实现 kafka。我想创建一个包含 3 个分区的主题。这样做时,出现的问题是只有第一个分区正在分配领导者,而其他两个分区没有获得领导者。我想为所有分区分配领导者。谁能告诉我我该怎么做? 提前致谢。

var client = new kafka.KafkaClient();
    var topic = 't-26';
    var topicsToCreate = [
        {
            topic: topic,
            partitions: 3,
            Leader: 0,
            replicationFactor: 1,
            replicaAssignment: [
            {
              partition: 0,
              replicas: [0]
            },
            {
                partition: 1,
                replicas: [1]
            },
            {
                partition: 2,
                replicas: [2]
            }
          ]
        },
        ];
        client.createTopics(topicsToCreate, (error, result) => {
             console.log(result);
        });

创建的话题如下-

Topic: t-26     PartitionCount: 3       ReplicationFactor: 1    Configs:
        Topic: t-26     Partition: 0    Leader: 0       Replicas: 0     Isr: 0
        Topic: t-26     Partition: 1    Leader: none    Replicas: 1     Isr:
        Topic: t-26     Partition: 2    Leader: none    Replicas: 2     Isr:

您“全局”定义 Leader 位于 ID 为 0 的代理上,而您希望分区 12 位于其他代理上。正如您将复制定义为一个,这是自相矛盾的。删除有关 Leader 的部分,它应该会自动在您想要的代理上创建分区领导者。

因为@mike,我得到了提示并解决了问题。我做了以下 -

删除 leader=0 并将所有副本设置为 0 replicas: [0]