我正在使用kafkaJS库在NodeJS中编写kafka生产者。
下面是我的示例代码。 它与kafka代理建立联系,并将消息发送到kafka主题“ topic-name”。
KafkaJS-Producer.js
const { Kafka } = require('kafkajs')
const kafka = new Kafka({
clientId: 'my-app',
brokers: ['localhost:9092']
})
const producer = kafka.producer()
async () => {
await producer.connect()
await producer.send({
topic: 'topic-name',
messages: [
{ key: 'key1', value: 'hello world' },
{ key: 'key2', value: 'hey hey!' }
],
})
await producer.disconnect()
}
我运行代码没有错误。
node SampleProducer.js
消费来自以下主题的消息:
kafka-console-consumer --bootstrap-server localhost:9092 --topic topic-name --from-beginning
但是,我看不到有任何消息传递给Kafka Topic。
这可能是什么原因?
注意:
Kafka在本地主机上运行。 主题也已创建。
资源:
https://www.npmjs.com/package/kafkajs https://kafka.apache.org/
答案 0 :(得分:1)
问题已解决:
实际上,问题是没有调用正在生成消息的箭头函数。我对代码做了一些更改,现在可以正常工作了:
var sendMessage = async () => {
await producer.connect()
await producer.send({
topic: 'topic-name',
messages: [
{ key: 'key1', value: 'hello world' },
{ key: 'key2', value: 'hey hey!' }
],
})
await producer.disconnect()
}
sendMessage();