NodeJS производитель kafka, использующий библиотеку kafkaJS, не работает - PullRequest
0 голосов
/ 09 января 2019

Я пишу производителя kafka в NodeJS, используя библиотеку kafkaJS.

Ниже приведен мой пример кода. Он устанавливает связь с брокером 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

Но я не мог видеть, чтобы какое-либо сообщение доставлялось в тему Кафки.

В чем может быть причина этого?

Примечание:

Кафка работает на localhost. Тема также создана.

Ресурсы:

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

1 Ответ

0 голосов
/ 09 января 2019

Устранена проблема:

На самом деле проблема заключалась в том, что функция стрелки, которая генерировала сообщения, не была вызвана. Я внес некоторые изменения в код, и теперь он работает нормально:

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...