使用kafkajs库的nodejs kafka生产者不工作

u3r8eeie  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(414)

我在用Kafka库写一个诺德兹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主题的任何信息。
为什么会这样?
注:
Kafka正在本地主机上运行。主题也被创建。
资源:
https://www.npmjs.com/package/kafkajshttps网址:kafka.apache.org/

s6fujrry

s6fujrry1#

问题已解决:
实际上,问题是生成消息的arrow函数没有被调用。我对代码做了一些更改,现在工作正常:

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

相关问题