美文网首页
生产故障-Kafka分区不平衡

生产故障-Kafka分区不平衡

作者: 天不生我小金 | 来源:发表于2021-02-17 18:16 被阅读0次

    前言:该博客主要是记录自己学习的过程,方便以后查看,当然也希望能够帮到大家。

    生产故障-Kafka分区不平衡

    故障描述:有个别服务的数据有部分没有上报,导致推荐页展示过期已删除的文章,业务端重新上报时,发现上报的数据迟迟没有送到指定服务,经过观察日志发现,kakfa的消息延迟了7个小时左右

    定位原因:

    1. 指定服务为单节点部署,所在的机器负载基本是满的

    处理过程:

    1. 将该服务改为多节点部署,发现只有一个节点能正常消费,其他节点都在空等待状态,定位出的原因为:该topic的分区只有一个,所以同一消费组,只能被一个节点进行消费
    2. 重建topic,改为12个分区后,再观察情况发现:每个分区的消息不平衡,有很多分区的消息数为0,经查验资料后发现: 如果key的值不为空,会根据key的值hash后分配到分区,也就是说相同的key,会分配到同一个分区上,最后去掉生产者的key得以解决

    解决方案:

    1. 确保kafka分区的数量超过同消费组内节点的数量
    2. 不同业务的topic要隔离开来,不要互相干扰
    3. 对消息积压情况进行告警,比如大数据只能延迟 5 分钟,业务数据延迟控制在秒内
    4. kafka的key不为空时,会根据key hash后路由到分区,要对key的命名使用注意

    后记:本次分享到此结束,本人水平有限,难免有错误或遗漏之处,望大家指正和谅解,欢迎评论留言。

    相关文章

      网友评论

          本文标题:生产故障-Kafka分区不平衡

          本文链接:https://www.haomeiwen.com/subject/fcxwxltx.html