好像是我的kafka Node 消费者:
var kafka = require('kafka-node');
var consumer = new Consumer(client, [], {
...
});
获取的消息太多,在某些情况下我无法处理。 有没有办法限制它(例如每秒接受不超过 1000 条消息,可能使用暂停 api?)
- 我正在使用 kafka-node,与 Java 版本相比,它似乎有一个有限的 api
最佳答案
在 Kafka 中,轮询和处理应该以协调/同步的方式进行。也就是说,在每次轮询之后,您应该先处理所有接收到的数据,然后再进行下一次轮询。此模式会自动将消息数量限制为您的客户端可以处理的最大吞吐量。
像这样的东西(伪代码):
while(isRunning) {
messages = poll(...)
for(m : messages) {
process(m);
}
}
(这就是为什么没有参数“fetch.max.messages”的原因——您只是不需要它。)
关于node.js - 我可以限制kafka Node 消费者的消费吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38546366/