我应该停止offsetOutOfRange上的节点-kafka-consumer吗?

我写了一个节点卡夫卡消费者。 在极less数情况下,我使用一个group-id来启动kafka客户端,当某些偏移量可用时使用,但不再可用 – 导致调用“offsetOutOfRange”事件。 在这种情况下推荐的行为是什么? logging错误并退出? 有没有办法恢复? 我总是希望从上次提交的偏移量(如果存在并可用)运行zookeeper。

client = new kafka.Client(ZOOKEEPER_URLS), consumer = new Consumer(client, [], { groupId: GROUP_ID, fromOffset: true }); consumer.on('offsetOutOfRange', function (topic) { applicationLogger.error('Kafka consumer is trying to read from offset which is out of range', topic); process.exit(1); }); 

我想知道为什么这不是在node-kafka-consumer中实现的,但是在其他客户端处理偏移量超出范围错误的默认行为是发出OffsetRequest来获取最早或最近的可用偏移量,然后将消费者偏移量设置为新的价值,并继续提取。

这是一个完全可恢复的情况,你只需要指定你想恢复到什么偏移量 – 最早或最新的可用。