作者回复: current主要是为了调试场景。比如这样的场景:你停掉了consumer,现在offset=50,然后修改了consumer代码重新上线,consumer开始从50消费,运行了一段时间发现你修改的代码有问题,还要继续改,那么下掉consumer,将offset调回current,改代码之后再上线,consumer从50消费。此时current策略就显得很方便了,对吧?
作者回复: 这是说的是手动设置位移的情况,自动设置位移是Kafka自动做的。当然也算是重设位移的一种
作者回复: 两个的实现方式不一样。详细设计原理差别可以看看:https://www.cnblogs.com/huxi2b/p/10773559.html
作者回复: 只能使用API来实现了,脚本方式不可以
作者回复: KafkaConsumer.seek方法支持指定单个分区进行重设位移
作者回复: 嗯嗯,你可以这么认为,其实还有其他作用,比如获取集群信息后台主题数据等
作者回复: 如果你上线的consumer程序有bug,需要重演自上线起处理过的消息,那么可以考虑使用这个策略
作者回复: 目前的信息不太能够确定原因。看看日志有无其他错误吧?
作者回复: 不需要的
作者回复: 如果使用程序API的方式不必停止消费
作者回复: 我觉得可以用啊
作者回复: 嗯,必须是非active的group才行
作者回复: 你不需要停止程序也能动态调整位移
作者回复: 是不是没有数据可以消费了呢?另外0.10版本的新consumer不建议使用,这个时候bug还比较多。建议至少到0.10.2或0.11之后再切换到新版本consumer