我正在使用kafka节点链接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主题。
4条答案
按热度按时间x6yk4ghg1#
我不太确定,但我想根据你的要求,代码已经更新了here:- https用法://github.com/sohu co/kafka node#createTopicsTopicsCB,添加参数“replicaassignment”。
dgiusagp2#
这个
Producer.createTopics
需要一个partitons
选项。看到了吗https://www.npmjs.com/package/kafka-node#createtopicstopics-断路器传递对象,而不是字符串
变成
8tntrjer3#
如文档所述,此方法仅在
auto.create.topics.enable
设置为true
:此方法用于在kafka服务器上创建主题。仅当kafka服务器上的auto.create.topics.enable设置为true时,它才起作用。我们的客户端只需向服务器发送一个元数据请求,服务器就会自动创建主题。当async设置为false时,此方法在创建所有主题之前不会返回,否则会立即返回。
这意味着对未知主题的任何操作都将导致使用默认的分区数创建它
num.partitions
参数。我不确定,但也许
node-rdkafka
实现可以允许您调用相应的librdkafka
创建主题的方法?k10s72fa4#
从node.js应用程序执行shell脚本$kafka\u home/bin/kafka-topics.sh-create-topic topicname-partitions 8-replication factor 1-zookeeperlocalhost:2181
其中$kafka\u home是您安装kafka的位置