偶然 通过 kafkatools 上发现一个 原来的消费组中提交的历史的offset 记录没有了,很明确的这个消费者组有过offset 提交记录
查找发现是 offsets.retention.minutes配置参数的问题
参考kafka 官网 https://kafka.apache.org/documentation/#consumerconfigs
在低版本中是1天后如果消费者组内没有消费者提交,offset就会丢失,在2.0.0版本以后 从1天调整到了7天。
解决的方法是:
1、修改kafka中 offsets.retention.minutes 配置项7天
2、将offset保存到数据库中。
3、设置offset提交超时时间,如果超过这个时间未提交offset,则自动将上一次已提交的offset再提交一次。