拒绝消息在kafka中使用no-kafka

时间:2019-03-13 16:59:22

标签: node.js apache-kafka

在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 :(得分:0)

在send方法调用之后,一个单独的线程负责将这些记录批次发送到适当的kafka代理。发送呼叫后无法取消记录。无论消息是否已提交,我们都会从代理获得响应。

enter image description here