线上出现了问题,导致flume消费 kafka 的消息延迟了很多。和业务部门了解到,可以丢失部分数据。于是得出了解决方案,将 topic 的 offset 设置到最新的位置。
碰到的问题:
Error: Assignments can only be reset if the group 'flumeGroup' is inactive, but the current state is Stable.
简单的说就是,相同的 group 有其他的 topic 正在使用和消费,那么这个 group 是出于 active 状态。出于 active 状态的 group 的任何 topic 的 offset 是不能够被 reset 的。
猜测可能原因:
- 是 kafka-consumer-groups.sh 工具中判断,防止误操作
- 是 kafka 服务判断响应操作
目前没有分析相关源码,先解决问题了。解决方法想到了两种:
- 自己 commit offset
- 停止 gourp 下其他 topic 的任务
目前使用的是方法2,这样操作最快。但是影响面较大。