libkafka 用通配符消费topic时,如何在消费者挂掉重启后将offset移到当前时刻?
即一个消费者同时消费多个topic(topic_test_A、topic_test_B),在10点消费者offset到了(topic_test_A->1000、topic_test_B->2000);10点消费者挂了,12点重启,topic下已经生产更多数据(topic_test_A->2000、topic_test_B->5000),
消费者如何从2000和5000消费对应topic。
在使用libkafka进行消费时,如果想要在消费者挂掉后将offset移到当前时刻,可以考虑使用以下两种方法:
使用auto.offset.reset设置为latest:在创建消费者时,将auto.offset.reset配置设置为latest,这将使得消费者在启动时从最新的offset位置开始消费。这意味着,即使消费者挂掉并重新启动,它将从最新的offset开始消费,而不是之前的offset。
使用时间戳消费:Kafka支持根据时间戳进行消费的功能。可以通过使用rd_kafka_consume_start_timestamp()函数来设置消费者从指定时间戳开始消费的功能。在消费者重启时,可以获取当前时间戳,然后使用rd_kafka_consume_start_timestamp()函数将消费者的offset设置为该时间戳之后的数据。