node.js - 使用 kafka-node 向消费者组手动提交消息

标签 node.js apache-kafka kafka-consumer-api

我想在我的消费者组中的所有任务完成后手动提交消息(例如将消息推送到数据库)。如何禁用自动提交并手动提交消息。

最佳答案

将自动提交设置为 false

const kafka = require('kafka-node');

const config = require('../config');

const client = new kafka.KafkaClient({
  kafkaHost: config.kafkaHost
});

const consumer = new kafka.Consumer(client, [
  {
    topic: config.kafkaTopic
  }
], {
  autoCommit: false
});

然后手动提交-

consumer.on('message', (message) => {
  console.log('message', message);
  // feed data into db 
  consumer.commit((error, data) => {
    if (error) {
      console.error(error);
    } else {
      console.log('Commit success: ', data);
    }
  });
});

关于node.js - 使用 kafka-node 向消费者组手动提交消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43862454/

相关文章:

node.js - 如何为具有构造函数(例如 imap)的复杂外部 commonjs 模块编写 TypeScript 声明文件?

apache-kafka - 与 KafkaStreams 的窗口结束外连接

python - 汇合卡夫卡: Consumer does not read from beginning for all partitions in a topic

node.js - Directline语音 Node js连接

javascript - 将 Promise 与 mongoose 函数一起使用

node.js - 安装 create-react-app my-first-react-app 后 npm start 脚本立即返回错误

java - 如何从环境变量将动态主题名称传递给@KafkaListener(topics)

apache-kafka - 如何将主题从 kafka 集群复制到另一个 kafka 集群?

java - 并行 KafkaStream 处理的更好方法?

apache-kafka - kafka的offset topic保留期问题