关于kafka重新消费数据问题

Posted goody9807

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于kafka重新消费数据问题相关的知识,希望对你有一定的参考价值。

我们在使用consumer消费数据时,有些情况下我们需要对已经消费过的数据进行重新消费,这里介绍kafka中两种重新消费数据的方法。

 

1. 修改offset

我们在使用consumer消费的时候,每个topic会产生一个偏移量,这个偏移量保证我们消费的消息顺序且不重复。Offest是在zookeeper中存储的,我们可以设置consumer实时或定时的注册offset到zookeeper中。我们修改这个offest到我们想重新消费的位置,就可以做到重新消费了。具体修改offest的方法这里就不详细介绍了,想了解的可以在我的博客kafka类中有相关文章,也可以点击这里了解。

 

2. 通过使用不同的group来消费

通过不同的group来重新消费数据方法简单,但我们无法指定我们要重复消费哪些数据,它会从这个groupid在zookeeper注册之后所产生的数据开始消费。这里需要注意的是新的group是重新消费所有数据,但也并非是topic中所有数据,它只会消费它在zookeeper注册过之后产生的数据。我们可以再zookeeper客户端中  /consumer/  目录下查看我们已经注册过的groupid。我们在使用consumer消费数据时如果指定一个新的groupid,那么当这个consumer被执行的时候会自动注册到zookeeper中。而这个group中的consumer之后消费到注册之后产生的数据。

关于如何删除在zookeeper中注册的groupid,点击这里。

以上是关于关于kafka重新消费数据问题的主要内容,如果未能解决你的问题,请参考以下文章

关于kafka消费者的命令

请教一个关于使用spark 读取kafka只能读取一个分区数据的问题

由于消费者速度较慢,Kafka 重新平衡主题中的数据

kafka的暂停消费和重新开始消费问题

Kafka消息重新发送

如何在从 Spark 消费 Kafka 时获取偏移 id,将其保存在 Cassandra 中并使用它来重新启动 Kafka?