繁体   English   中英

在nodeJS中创建主题时将leader分配给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:

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

由于@mike,我得到了一个提示并解决了这个问题。 我做了以下-

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM