如何在nodejs中创建带有分区的kafka主题?

luc*_*ucy 5 node.js apache-kafka

我正在使用 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
Run Code Online (Sandbox Code Playgroud)

如何在 nodejs 中创建带有分区的 kafka 主题。

Ale*_*Ott 1

正如文档所述,此方法仅在auto.create.topics.enable设置为时才有效true

该方法用于在Kafka服务器上创建主题。仅当 Kafka 服务器上的 auto.create.topics.enable 设置为 true 时,它​​才有效。我们的客户端只需向服务器发送元数据请求,服务器将自动创建主题。当 async 设置为 false 时,该方法直到所有主题都创建完成后才返回,否则立即返回。

这意味着对未知主题的任何操作都将导致其创建为num.partitions参数配置的默认分区数。

我不确定,但也许其中一种node-rdkafka实现可以允许您调用相应的librdkafka方法来创建主题?