如何在Kafka nodejs中延迟消费消息?

时间:2016-05-31 12:14:37

标签: node.js elasticsearch apache-kafka elasticjs

我使用NodeJS来消费来自Kafka的消息,收到消息后,我将把它带到Elasticsearch中创建一个索引。这是我的一段代码:

kafkaConsumer.on('message', function (message) {
    elasticClient.index({
        index: 'test',
        type: 'sample',
        body: message
    }, function (error, response) {
        if (error) {

            // Stop consuming message here

            console.log(error);
        }
        console.log(response);
    });
});

我想确保在继续使用下一条消息之前必须成功创建索引,因为我不希望丢失任何消息。

2 个答案:

答案 0 :(得分:0)

试一试consumer.pause()/resume() 暂停()暂停消费者
resume()恢复消费者

答案 1 :(得分:0)

您可以暂停您的消费者,以便它不会订阅和获取新消息。一旦您从elasticClient获得响应,您就可以恢复您的kafka消费者。

kafkaConsumer.pause();
kafkaConsumer.resume();

根据您的设置使用它。