Node.js 有时节点rdkafka使用者不读取主题中的任何消息
下面的代码片段工作正常但有时它不会阅读卡夫卡主题的信息。我没有得到任何错误。在卡夫卡方面(我们使用的是Aiven管理的卡夫卡),消费者群体与主题相关,消费者脚本运行良好 我需要你的指导来解决上述问题 卡夫卡版本-2.0.1 节点模块版本-“节点rdkafka”:“^2.7.0” 代码参考-Node.js 有时节点rdkafka使用者不读取主题中的任何消息,node.js,apache-kafka,librdkafka,aiven,Node.js,Apache Kafka,Librdkafka,Aiven,下面的代码片段工作正常但有时它不会阅读卡夫卡主题的信息。我没有得到任何错误。在卡夫卡方面(我们使用的是Aiven管理的卡夫卡),消费者群体与主题相关,消费者脚本运行良好 我需要你的指导来解决上述问题 卡夫卡版本-2.0.1 节点模块版本-“节点rdkafka”:“^2.7.0” 代码参考- 如果您描述消费者群体,您会看到什么?您的代码与示例@cricket_007;这是工作代码。你能告诉我“我错过了什么”吗?我将很快分享描述消费者群体的o/p。我相信“它工作”很好。我只是想指出,遵循文档示例可以
如果您描述消费者群体,您会看到什么?您的代码与示例@cricket_007;这是工作代码。你能告诉我“我错过了什么”吗?我将很快分享描述消费者群体的o/p。我相信“它工作”很好。我只是想指出,遵循文档示例可以更容易地识别可能的错误,因为我遇到了一个非常类似的问题。客户端连接,服务器知道使用者,但再平衡事件从未触发,使用者从未分配,它只是坐在那里,没有接收任何消息。
const Kafka = require('node-rdkafka');
const path = require('path');
console.log(Kafka.features);
const consumer = new Kafka.KafkaConsumer({
'group.id': 'testxyz',
'metadata.broker.list': "kafka-production-url",
'security.protocol': 'SSL',
'ssl.key.password': "password",
'ssl.key.location': '/var/www/html/config/service.key',
'ssl.certificate.location': '/var/www/html/config/service.cert',
'ssl.ca.location': '/var/www/html/config/ca.pem',
'socket.keepalive.enable': true,
'enable.auto.commit': false,
'rebalance_cb': function(err, assignment) {
if (err.code === Kafka.CODES.ERRORS.ERR__ASSIGN_PARTITIONS) {
// Note: this can throw when you are disconnected. Take care and wrap it in
// a try catch if that matters to you
this.assign(assignment);
} else if (err.code == Kafka.CODES.ERRORS.ERR__REVOKE_PARTITIONS){
// Same as above
this.unassign();
} else {
// We had a real error
console.error(err);
}
},
'offset_commit_cb': function (err: any, topicPartitions: any) {
if (err) {
// There was an error committing
console.error("error in commit", err);
} else {
// Commit went through. Let's log the topic partitions
console.log("Success in commit", topicPartitions);
}
}
},
'auto.offset.reset': 'earliest');
consumer.on('ready', {
consumer.subscribe("mytopic");
consumer.consume();
});
// handle the messgae
consumer.on('data', {
console.log(data);
});
consumer.on('disconnected', {
console.log("onDisconnected",args);
});
consumer.connect();