使用kafkaJS库的NodeJS kafka生产者无法正常工作

时间:2019-01-09 09:01:39

标签: node.js apache-kafka

我正在使用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/

1 个答案:

答案 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();