【问题标题】:Assign leader to partitions of kafka topic while creating topics in nodeJS在nodeJS中创建主题时将领导者分配给kafka主题的分区
【发布时间】:2020-08-24 15:10:47
【问题描述】:

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

【问题讨论】:

  • 嗨@PNJain,下面的答案是否帮助您解决了您的问题?如果是这样,如果你能接受,将不胜感激。

标签: node.js apache-kafka kafka-node


【解决方案1】:

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

【讨论】:

  • 其实没有错误。但是感谢您,因为我得到了提示并将所有副本设置为 0,现在问题已解决
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-01
    • 2022-06-14
    • 2018-05-25
    • 2023-04-05
    • 2020-03-30
    • 1970-01-01
    • 2018-09-03
    • 2017-10-17
    相关资源
    最近更新 更多