node.js - 使用 kafkaJS 库的 NodeJS kafka 生产者不起作用
问题描述
我正在使用 kafkaJS 库在 NodeJS 中编写一个 kafka 生产者。
下面是我的示例代码。它与 kafka 代理建立连接并向 kafka 主题“主题名称”发送消息。
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/
解决方案
问题解决了:
实际上,问题在于没有调用产生消息的箭头函数。我对代码进行了一些更改,现在可以正常工作:
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();
推荐阅读
- javascript - 一旦组件在 react 中渲染,我们可以修改 div 吗?
- java - 在不使用意图的情况下单击按钮发送 gmail
- c++ - 搜索具有特定签名调用的函数?
- xcode - 为什么我的视图加载但不显示 segue?
- matrix - sympy 矩阵到显式求和并返回(到矩阵表示法)
- python - 有没有办法在nodejs项目中使用python代码
- php - 键入时间戳和 UTC
- python - 如何使此功能非阻塞?
- java - QueryDocumentSnapshot 无法解析
- accessibility - 508 合规性 - 在弹出菜单中移动菜单项的官方规则?标签?