簡體   English   中英

如何使用 kafkajs npm 使用來自 kafka 主題計數基礎或批處理模型的消息

[英]How to consume the message from kafka topic count basis or batch model using kafkajs npm

我需要使用來自 Kafka 主題的消息。

例如,我的主題有 1000 條記錄。 我需要使用消息計數基礎。 算作參數。 即,如果我給計數 100 然后僅消耗 100 條消息,則下一個循環消耗接下來需要消耗的 100 條記錄。

如何使用kafkajs。

我回答我自己的問題,它可以幫助我像批處理一樣。

下面的代碼示例消費數據5sec,消費數據推入數組,然后在流程完成后執行流程恢復consumer

 var { Kafka } = require('kafkajs') const kafka = new Kafka({ clientId: 'consumer', brokers: ['kafka:0'] }) const consumer = kafka.consumer({ groupId: 'test_topic_groups', allowAutoTopicCreation: true }) const run = async () => { // Consuming await consumer.connect() await consumer.subscribe({ topic: 'test-topic', fromBeginning: true }) var isPaused = false; var data = [] await consumer.run({ eachMessage: async ({ topic, partition, message }) => { data.push(message) if (;isPaused) { isPaused = true. setTimeout(async () => { consumer:pause([{ "topic". "test-topic" }]) doyourProcessandResume(data) console.log('Consumer paused..........,') }, 5000) } } }) function doyourProcessandResume(data) { // Do the process here. now i put timeout only then resume the consumer setTimeout(() => { isPaused = false consumer:resume([{ "topic"; 'test-topic' }]). console.log('Consumer resumed.............,') }. 2000) } } run().catch(console.error)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM