kafka重复消费?

问题阐述

有个业务场景,是通过kafka给审核中台推审核任务,链路是 离线获取待审核直播间 -> 推送kafka -> 业务消费kafka做物料整理 -> 通过kafka 推到审核中台审核。

问题的现象是: 离线待审核直播间只有几百个的时候, 审核中台收到了几千个直播间,经检查明显是重复推送了。

问题分析

  • 检查业务代码逻辑,不存在重复推送的情况
  • 相关监控 验证了 确实没有单次消费,多次推送的情况
  • 查看kafka相关监控,发现offset 一只没有变化, 且 lag 很高
  • 继续观察相关监控 发现 持续rebalance
  • 初步怀疑是 rebalance 导致kafka 重复消费

问题原因

  • 由于审核材料会调用AI进行预处理,有频控问题,所以整体消费速度很慢
  • 由于消费速度慢,因此在hive2kafka的过程中限制了生产速度 1条/s
  • 由于前两者,导致kafka 执行速度非常慢,中台配置单次pull 执行超过了5min,就会自动rebalance