【问题标题】:Should I stop my node-kafka-consumer on offsetOutOfRange?我应该在 offsetOutOfRange 上停止我的 node-kafka-consumer 吗?
【发布时间】:2016-08-01 18:24:18
【问题描述】:

我写了一个 node-kafka 消费者。在极少数情况下,我使用组 ID 启动 kafka 客户端,该组 ID 在某些偏移可用但不再可用时使用 - 导致调用“offsetOutOfRange”事件。 在这种情况下,推荐的行为是什么?记录错误并退出?有没有办法恢复?我总是想从最后提交的偏移量(如果存在且可用)运行 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.js apache-kafka


    【解决方案1】:

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

    这是一种完全可恢复的情况,您只需指定要恢复到的偏移量 - 最早或最晚可用。

    【讨论】:

      猜你喜欢
      • 2022-06-10
      • 1970-01-01
      • 2015-11-18
      • 1970-01-01
      • 2019-02-03
      • 2019-12-06
      • 2012-05-28
      • 1970-01-01
      • 2015-10-28
      相关资源
      最近更新 更多