卡夫卡消费者轮询超时

2022-09-03 07:30:34

我正在与Kafka合作,并试图从中消耗数据。从下面一行开始,我可以轮询来自Kafka的数据。

  while (true) {
    ConsumerRecords<byte[], <byte[]> records = consumer.poll(Long.MAX_VALUE);
    for (ConsumerRecord<byte[], <byte[]> record : records) {
        // retrieve data
    }
  }

我的问题是,与我提供超时相比,我通过提供超时获得的好处是什么。将要运行生产的系统的最佳做法是什么。Long.MAX_VALUE200

任何人都可以解释一下高超时与低超时的区别,以及在生产系统中应该使用哪个?


答案 1

设置MAX_VALUE是一种消耗同步消息,永远等待,直到我们从轮询中返回一些东西,而设置为较低的值使您有机会决定执行其他操作而不是等待。应使用哪个取决于您的实际方案。


答案 2

推荐