在nodejs中创建主题时,为kafka主题的分区指定引线

qyuhtwio  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(460)

我有一个kafka代理,正在使用kafka节点在nodejs中实现kafka。我想用3个分区创建一个主题。执行此操作时,出现的问题是,只有第一个分区得到了leader assign,而其他两个分区没有得到leader。我要为所有分区指定引线。谁能告诉我怎么做?提前谢谢。

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:
33qvvth1

33qvvth11#

因为@mike,我得到了一个提示并解决了这个问题。我做了以下事情-
删除 leader=0 并将所有副本设置为0 replicas: [0]

8xiog9wr

8xiog9wr2#

您正在“全局”定义要在id为的代理上的领导者 0 但是你想要分区 1 以及 2 位于其他经纪商。正如您定义的复制是一个,这是自相矛盾的。拆下关于 Leader 它应该自动在你想要的代理上创建分区。

相关问题