【问题标题】:NodeJS kafka producer using kafkaJS library not working使用 kafkaJS 库的 NodeJS kafka 生产者不起作用
【发布时间】:2019-06-04 00:11:29
【问题描述】:

我正在使用 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 主题。

这可能是什么原因?

注意:

Kafka 在本地主机上运行。 主题也被创建。

资源:

https://www.npmjs.com/package/kafkajs https://kafka.apache.org/

【问题讨论】:

    标签: node.js apache-kafka


    【解决方案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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-27
      • 2018-04-19
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2018-12-14
      • 2016-12-17
      • 1970-01-01
      相关资源
      最近更新 更多