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

问题描述

我只有一个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]