Кафка-узел вдруг потребляет со смещения 0 - PullRequest
3 голосов
/ 31 января 2020

Иногда потребитель 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)


  });

Единственное решение, которое я нашел до сих пор, это изменить kafka topi c. Тогда все снова работает нормально. Любые идеи ?

1 Ответ

1 голос
/ 31 января 2020

В Kafka смещения не связаны с указанными c потребителями, а вместо этого они связаны с группами потребителей . В вашем коде вы не предоставляете Consumer Group, поэтому каждый раз, когда вы запускаете Consumer Group, она присваивается другой Consumer Group, и поэтому смещение начинается с 0.

Следующие действия должны помочь (очевидно, когда вы впервые прочитаете все сообщения):

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