Node.js kafka节点分区程序types的用法

我试图通过节点js使用kafka-node将数据插入到kafka主题中。

如果我尝试使用partitionerType,数据不会被插入。 如果我删除PartitionerType(即不使用选项),代码的作品,但在这种情况下,所有的数据只有一个分区。

你能帮我解决这个问题吗? 提前致谢。

var kafka = require('kafka-node'), Producer = kafka.Producer, KeyedMessage = kafka.KeyedMessage, client = new kafka.Client("zookeeper-host:2181","node-id"), options = { requireAcks: 1, ackTimeoutMs: 100, partitionerType: 3 }, producer = new Producer(client, options); //producer = new Producer(client); -- This works var km = new KeyedMessage('key1', 'message6'), kn = new KeyedMessage('key2', 'message5'), kv = new KeyedMessage('key3', 'message4'), kx = new KeyedMessage('key4', 'message3'), ky = new KeyedMessage('key5', 'message2'), kz = new KeyedMessage('key6', 'message1'), payloads = [ { topic: 'test-topic3', messages: [km,kn,kv,kx,ky,kz] } ]; console.log("Ready to send data"); producer.on('ready', function () { producer.send(payloads, function (err, data) { console.log(data); }); }); console.log("DATA SENT"); 

非常感谢

帕里

以上代码与HighLevelConsumer工作正常。

谢谢Pari

使用refreshMetadata方法…

在我的情况下,它的作品。

请参阅以下链接…

https://github.com/SOHU-Co/kafka-node/issues/436

client.refreshMetadata([topic1, topic2], callback)