问题描述
我要在哪里存储偏移量信息,直到系统读取数据为止。因此,下次系统再次开始从kafka读取数据时,我需要读取系统中较旧的偏移量到最新偏移量之间的数据。但是由于kafka保留政策,较早的偏移量可能无效。因此,如果我们在kafka消费者中指定了较早的偏移量,那么行为将是什么?还有什么方法可以获取特定主题/偏移量的最早偏移值,以便我们从中读取?
解决方法
这取决于您配置使用者的方式。具体来说,是auto.offset.rest
参数。如果将其设置为earliest
,则消费者将从最早的可用偏移量开始消费(如果尝试从中消费的偏移量无效)。
这样,您不需要查找最早的偏移值,因为使用者的行为就像我描述的那样。
您可以找到更多详细信息here。
,
在启动过程中只需执行seekToBeginning
。
实施ConsumerSeekAware
,或者最好扩展AbstractConsumerSeekAware
。
请参见here。
只需在seekToBeginning
中调用onPartitionsAssigned
。