是否有任何方法可以获取kafka主题的最旧的可用偏移量

问题描述

我要在哪里存储偏移量信息,直到系统读取数据为止。因此,下次系统再次开始从kafka读取数据时,我需要读取系统中较旧的偏移量到最新偏移量之间的数据。但是由于kafka保留政策,较早的偏移量可能无效。因此,如果我们在kafka消费者中指定了较早的偏移量,那么行为将是什么?还有什么方法可以获取特定主题/偏移量的最早偏移值,以便我们从中读取?

解决方法

这取决于您配置使用者的方式。具体来说,是auto.offset.rest参数。如果将其设置为earliest,则消费者将从最早的可用偏移量开始消费(如果尝试从中消费的偏移量无效)。 这样,您不需要查找最早的偏移值,因为使用者的行为就像我描述的那样。 您可以找到更多详细信息here

,

在启动过程中只需执行seekToBeginning

实施ConsumerSeekAware,或者最好扩展AbstractConsumerSeekAware

请参见here

只需在seekToBeginning中调用onPartitionsAssigned