![](/img/trans.png)
[英]Assign leader to partitions of kafka topic while creating topics in nodeJS
[英]How to create kafka topic with partitions in nodejs?
我正在使用kafka-node link api来创建kafka主题。 我没有找到如何使用分区创建kafka主题。
var kafka = require('kafka-node'),
Producer = kafka.Producer,
client = new kafka.Client(),
producer = new Producer(client);
// Create topics sync
producer.createTopics(['t','t1'], false, function (err, data) {
console.log(data);
});
// Create topics async
producer.createTopics(['t'], true, function (err, data) {});
producer.createTopics(['t'], function (err, data) {});// Simply omit 2nd arg
如何使用nodejs中的分区创建kafka主题。
从您的node.js应用程序执行shell脚本$ KAFKA_HOME / bin / kafka-topics.sh -create -topic topicname -partitions 8 -replication-factor 1 -zookeeper localhost:2181
其中$ KAFKA_HOME是您安装Kafka的位置
如文档所述,此方法仅在auto.create.topics.enable
设置为true
:
此方法用于在Kafka服务器上创建主题。 它仅在Kafka服务器上的auto.create.topics.enable设置为true时有效。 我们的客户只需向服务器发送元数据请求即可自动创建主题。 当async设置为false时,此方法在创建所有主题之前不会返回,否则会立即返回。
这意味着对未知主题的任何操作都将导致使用num.partitions
参数配置的默认分区数创建它。
我不确定,但也许其中一个node-rdkafka
实现可以允许你调用相应的librdkafka
方法来创建主题?
我不确定,但我认为根据您的要求,代码已在此更新: - https://github.com/SOHU-Co/kafka-node#createtopicstopics-cb ,添加参数“replicaAssignment”。
// Optional explicit partition / replica assignment
// When this property exists, partitions and replicationFactor properties are ignored
replicaAssignment: [
{
partition: 0,
replicas: [3, 4]
},
{
partition: 1,
replicas: [2, 1]
}
]
Producer.createTopics
采用partitons
选项。 请参阅https://www.npmjs.com/package/kafka-node#createtopicstopics-cb
传递一个对象,而不是一个字符串
producer.createTopics(['t', 't1'], true, function (err, data) {});
变
producer.createTopics(
[
{ topic: 't', paritions: 5 },
{ topic: 't1', partitions: 23 },
],
true,
function (err, data) {}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.