首页 > 解决方案 > Kafka消费者从主题开头读取时重新启动

问题描述

我是卡夫卡新手。

假设我有一个 kafka 主题 topoic1(replicationfactor=1,partitions=1) 和一个消费者(java 进程)从 kafka topic1 读取(readfrombegining/earliest)。消费者在一段时间内运行良好,后来由于某种原因被管理员挂起并杀死。

因此,如果我重新启动消费者,它将再次从头开始读取,从而导致数据重复那么如何处理这个用例呢?

注意:我知道,如果消费者代码编写为从最新读取,那么我们将不会获得重复的数据。除此之外还有解决方案吗?

标签: apache-kafka

解决方案


消费者只会在auto.offset.reset=earliest

  • 您禁用了自动提交+不要手动提交偏移量
  • 或者不要在启动时手动寻找消费者;即您可以从 Kafka 外部跟踪偏移量

推荐阅读