在 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
的代理上,而您希望分区 1
和 2
位于其他代理上。正如您将复制定义为一个,这是自相矛盾的。删除有关 Leader
的部分,它应该会自动在您想要的代理上创建分区领导者。
因为@mike,我得到了提示并解决了问题。我做了以下 -
删除 leader=0
并将所有副本设置为 0 replicas: [0]
我有一个 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
的代理上,而您希望分区 1
和 2
位于其他代理上。正如您将复制定义为一个,这是自相矛盾的。删除有关 Leader
的部分,它应该会自动在您想要的代理上创建分区领导者。
因为@mike,我得到了提示并解决了问题。我做了以下 -
删除 leader=0
并将所有副本设置为 0 replicas: [0]