我正在尝试使用高级使用者批量阅读Kafka主题中的消息。 在批量读取期间,我的线程必须在某个时刻停止。
一旦主题中的所有消息都用尽了。或者得到 消息即将被读取时的最大偏移量 停止,直到达到最大偏移量。
我尝试使用high-level-consumer处的代码,但KafkaStream上的迭代器方法似乎是一个阻塞调用,并等待另一条消息进入。
所以3个问题,
我怎么知道没有更多信息可以从主题中读取?
如果我对上述问题有答案,我该怎样阻止它再听这个话题?
有没有办法在批量读取开始时找到最大偏移量(我认为简单的消费者可以这样做)并让高级消费者在那时停止?
答案 0 :(得分:0)
您可以选择确定在指定的时间内没有新消息到达时,您可以考虑已读取所有消息。这可以使用使用者属性consumer.timeout.ms
设置。在没有任何新消息到达的情况下传递此指定值之后,ConsumerIterator将抛出超时异常,您可以在使用者中处理并退出。