apache-kafka - Kafka消费者从主题开头读取时重新启动
问题描述
我是卡夫卡新手。
假设我有一个 kafka 主题 topoic1(replicationfactor=1,partitions=1) 和一个消费者(java 进程)从 kafka topic1 读取(readfrombegining/earliest)。消费者在一段时间内运行良好,后来由于某种原因被管理员挂起并杀死。
因此,如果我重新启动消费者,它将再次从头开始读取,从而导致数据重复那么如何处理这个用例呢?
注意:我知道,如果消费者代码编写为从最新读取,那么我们将不会获得重复的数据。除此之外还有解决方案吗?
解决方案
消费者只会在auto.offset.reset=earliest
和
- 您禁用了自动提交+不要手动提交偏移量
- 或者不要在启动时手动寻找消费者;即您可以从 Kafka 外部跟踪偏移量
推荐阅读
- python-3.x - ValueError: Series 的真值不明确 - 检查 pandas 列中的值
- ethereum - 是否可以获得从另一个合同外部函数获取数据的外部函数的返回值?
- python-3.x - 如何使用 Matplotlib 创建高分辨率动画而不会出现内存问题?
- jenkins - Jenkins Pipeline - 从奴隶开始
- java - Java:类中的错误
- python - 检查HTML标签是否平衡python的程序
- regex - C++11 正则表达式匹配 $VARNAME 或 ${VARNAME}
- javascript - 为什么表达式逻辑表达式`product.id === +id;`中的加号?
- tensorflow - 如何在异步 Actor Critic 方法中实现 TensorFlow 模型并行性?
- algorithm - 收集物品集的优化算法