数据地图kafka消费能力不足解决

背景

通过监控发发现topic消费状态不正常

image.png

原因

kafka在业务消费500条数据处理时间超过5分钟时会引起消费者的rebalance,从而影响消费速率甚至数据重复问题。

解决

  • 从kafka server端拉取数据量由500降低为60
  • 业务处理超时时间由原来5分钟增加为10分钟,可根据业务场景进行调整

Properties props = new Properties();
props.put("max.poll.interval.ms", 60 * 1000 * 10); //10分钟
props.put("max.poll.records",60) // 从kafka server一次拉取数据量  60条

常见问题

问题1 因业务处理能力低导致的rebalance后以前老的消费者是否可以ack?

消费者不再持有分区权限,无法提交ack

问题2 有问题消费者能否再获取到分区消费权限

kafka consumer有心跳线程,poll线程两个独立线程;在poll超时后触发rebalance,不会影响他的下次再分配权限;因为心跳还在只是处理慢,心跳再次上报成功认为该消费者是正常状态。
因此consumer1在因业务超时触发rebalance后,仍然能够再次分配到分区的

问题3 上述情况为啥不阻塞分区消费

consumer 1 取到超时消息触发rebalance,consumer1失去ack权限
consumer1 心跳正常发送,协调这认为consumer1恢复正常
consumer 2 取到超时消息触发rebalance,consumer2失去ack权限
consumer2 心跳正常发送,协调这认为consumer2恢复正常
...
一直到consumer1,重新持有分区权限,在业务处理的消息结束,提交ack成功,分区才能继续往下消费,只是消费低

问题4 消费监控跌倒0原因

rebalance期间,消费会停止重新分配成功后再次开始消费

问题5 分区业务处理慢会阻塞整个topic

如果大消息只出现在一个分区中,不会阻塞整个topic的消费,只会影响大消息的分区数据

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • """1.个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello ...
    她即我命阅读 3,314评论 0 5
  • 为了让我有一个更快速、更精彩、更辉煌的成长,我将开始这段刻骨铭心的自我蜕变之旅!从今天开始,我将每天坚持阅...
    李薇帆阅读 1,958评论 0 3
  • 似乎最近一直都在路上,每次出来走的时候感受都会很不一样。 1、感恩一直遇到好心人,很幸运。在路上总是...
    时间里的花Lily阅读 1,411评论 0 2
  • 1、expected an indented block 冒号后面是要写上一定的内容的(新手容易遗忘这一点); 缩...
    庵下桃花仙阅读 548评论 0 1
  • 一、工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)矩形、椭圆选框工具 【M】移动工具 【V...
    墨雅丫阅读 548评论 0 0