Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 卡夫卡节点突然从偏移量0开始使用_Node.js_Apache Kafka_Kafka Consumer Api_Node Kafka - Fatal编程技术网

Node.js 卡夫卡节点突然从偏移量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:

有时,kafka节点使用者从偏移量0开始使用,而其默认行为是仅使用较新的消息。然后它将不会切换回其默认行为。你知道如何解决这个问题,发生了什么,它的行为突然改变了吗?代码非常简单,在不修改代码的情况下实现

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)
  });