我正在使用 Kafka 框架提供的默认 server.properties/zookeeper.properties 文件。
我正在尝试创建一个简单的 NodeJS 应用程序,它将向 Producer 发送消息并使用它们。
下面是 NodeJS 代码。
配置.js
module.exports = {
kafka_topic: 'catalog',
kafka_server: 'localhost:9092',
};
nodejs-producer.js
const kafka = require('kafka-node');
const config = require('./config');
try {
// set the desired timeout in options
const options = {
timeout: 5000,
};
const Producer = kafka.Producer;
const client = new kafka.KafkaClient({kafkaHost: config.kafka_server, requestTimeout: 5000});
const producer = new Producer(client);
const kafka_topic = config.kafka_topic;
let payloads = [
{
topic: kafka_topic,
messages: 'This is test message'
}
];
producer.on('ready', async function() {
let push_status = producer.send(payloads, (err, data) => {
if (err) {
console.log(err.toString());
console.log('[kafka-producer -> '+kafka_topic+']: broker update failed');
} else {
console.log(data.toString());
console.log('[kafka-producer -> '+kafka_topic+']: broker update success');
}
});
});
producer.on('error', function(err) {
console.log(err);
console.log('[kafka-producer -> '+kafka_topic+']: connection errored');
throw err;
});
}
catch(e) {
console.log(e);
}
kafka 版本 = 2.8.0 kafka 节点版本 = 5.0.0
我收到错误消息 - 错误:LeaderNotAvailable
如何解决这个问题?我尝试在 server.properties 文件中使用不同的值,例如adverted.listeners,但没有得到解决方案。