Отклонить сообщение в кафке используйте no-kafka - PullRequest
0 голосов
/ 13 марта 2019

По умолчанию в no-kafka есть предварительная конфигурация со значением по умолчанию 3.

return producer.send(messages, {
  retries: {
    attempts: 2,
    delay: {
      min: 100,
      max: 300
    }
  }
});

https://www.npmjs.com/package/no-kafka

Как я могу вручную отклонить сообщение?

var consumer = new Kafka.SimpleConsumer();

// data handler function can return a Promise
var dataHandler = function(messageSet, topic, partition) {
  messageSet.forEach(function(m) {
    const random = Math.floor(Math.random() * 11);
    if (random > 5) {
      console.log(topic, partition, m.offset, m.message.value.toString("utf8"));
    } else {
        // Decline a message
      console.log("Decline a message");
    }
  });
};

return consumer.init().then(function() {
  // Subscribe partitons 0 and 1 in a topic:
  return consumer.subscribe("kafka-test-topic", [0, 1], dataHandler);
});

1 Ответ

0 голосов
/ 13 марта 2019

После вызова метода send отдельный поток отвечает за отправку этих пакетов записей соответствующим брокерам kafka. Нет контроля для отмены записей после отправки вызова. Мы получим ответ от брокера, было ли сообщение принято или нет.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...