记一次生产BUG - Kafka
-
新增了一个group 消费topic ,没有注意之前配置的spring.kafka.consumer.auto-offset-reset=earliest.
导致新的group消费者组,从头开始消费,因为条件限制,发布的时候,没有注意到机器指标,发布40分钟内,CPU从10%以内直接飙升到70~80%,磁盘使用率60%左右。 后面CPU恢复,起初没在意,以为只是发布,消费从kafka创建开始到发布之间堆积的kafka。 日志中心也有反馈,服务日志停止在发布服务后的几分钟,以为服务挂了。但看服务器里面的日志正常。就以为是消费堆积的kafka导致。就下班了。
晚上11点,领导找上门,起初是以为groupId没有申请导致,消费了1亿+数据,。。。中间过程,有点彻夜难眠的感觉(由于特殊原因,个人笔记本被拿走了)。第二天,早早来到公司发现,配置的**spring.kafka.consumer.auto-offset-reset=earliest.**导致从头开始消费。 -
kafka 连接工厂,使用了批量处理,并且使用了公司中间件的东西,导致有时候到的数据是多个json体,例如:{},{} 导致转化JSON对象失败,打印了error日志。 运维帮忙恢复由于1亿+消费阻塞的日志,恢复过后,开始疯狂报异常,转化JSON对象失败。将kafka连接工厂去掉,使用spring-kafka默认的。
-
由于接收的是其他服务接收的kafka消息,就直接复制过来了代码,但由于我解析了里面具体的字段,导致解析错误。经过半天排查,让人无语的是,我试着将经纬度字符串解析成Double类型,前面有做了非空判断,就使用Double api 转化成数字,结果抛异常了。原因是经纬度有 “null” 字符串,让人头大,这个预生产数据量太小,没有发现这个问题。“null” 字符串真是神奇~,应该是我的问题。