Node.js 卡夫卡节点突然从偏移量0开始使用
有时,kafka节点使用者从偏移量0开始使用,而其默认行为是仅使用较新的消息。然后它将不会切换回其默认行为。你知道如何解决这个问题,发生了什么,它的行为突然改变了吗?代码非常简单,在不修改代码的情况下实现Node.js 卡夫卡节点突然从偏移量0开始使用,node.js,apache-kafka,kafka-consumer-api,node-kafka,Node.js,Apache Kafka,Kafka Consumer Api,Node Kafka,有时,kafka节点使用者从偏移量0开始使用,而其默认行为是仅使用较新的消息。然后它将不会切换回其默认行为。你知道如何解决这个问题,发生了什么,它的行为突然改变了吗?代码非常简单,在不修改代码的情况下实现 var kafka = require("kafka-node") ; Consumer = kafka.Consumer; client = new kafka.KafkaClient(); consumer = new Consumer(client, [{ topic:
var kafka = require("kafka-node") ;
Consumer = kafka.Consumer;
client = new kafka.KafkaClient();
consumer = new Consumer(client, [{ topic: "Topic_23", partition: 0}
]);
consumer.on("message", function(message) {
console.log(message)
});
到目前为止,我找到的唯一解决办法是改变卡夫卡的主题。然后一切又恢复正常了。有什么想法吗 在卡夫卡中,偏移量与特定消费者无关,而是与消费者群体相关联。在代码中,您不提供消费者组,因此,每次启动消费者时,都会将其分配给不同的消费者组,因此,偏移量从
0
开始
下面应该可以做到这一点(显然,在您第一次阅读所有消息时):
你能分享卡夫卡消费者的选择吗?Giorgo,没有。只有我提供的默认设置。我需要将[]添加到有效负载消息中,否则它会抛出:TypeError:topics。有些不是函数。如果我加上这个,它会从头再读一遍所有的信息。很遗憾没有改变行为。您运行了两次吗?另外,您能否共享
/bin/kafka-run-class.sh kafka.tools.GetOffsetShell--代理列表您的主机:9092--主题\u 23
的输出?
var kafka = require("kafka-node") ;
Consumer = kafka.Consumer;
client = new kafka.KafkaClient();
payload = [{
topic: "Topic_23",
partition: 0
}]
var options = {
groupId: 'test-consumer-group',
fromOffset: 'latest'
};
consumer = new Consumer(client, payload, options);
consumer.on("message", function(message) {
console.log(message)
});