卡夫卡高层消费者

时间:2015-03-17 22:27:12

标签: java apache-kafka kafka-consumer-api

我正在尝试使用高级使用者批量阅读Kafka主题中的消息。 在批量读取期间,我的线程必须在某个时刻停止。

  

一旦主题中的所有消息都用尽了。或者得到   消息即将被读取时的最大偏移量   停止,直到达到最大偏移量。

我尝试使用high-level-consumer处的代码,但KafkaStream上的迭代器方法似乎是一个阻塞调用,并等待另一条消息进入。

所以3个问题,

  1. 我怎么知道没有更多信息可以从主题中读取?

  2. 如果我对上述问题有答案,我该怎样阻止它再听这个话题?

  3. 有没有办法在批量读取开始时找到最大偏移量(我认为简单的消费者可以这样做)并让高级消费者在那时停止?

1 个答案:

答案 0 :(得分:0)

您可以选择确定在指定的时间内没有新消息到达时,您可以考虑已读取所有消息。这可以使用使用者属性consumer.timeout.ms设置。在没有任何新消息到达的情况下传递此指定值之后,ConsumerIterator将抛出超时异常,您可以在使用者中处理并退出。