项目场景:
因业务约束,发送到kafka的单条消息的大小达到了125k。并且存在远程调用瓶颈,目前阶段无法解耦。在此条件下,系统上了生产第一天就遇到了消费瓶颈,并且10分钟积压消息达到了100w+,为此记录问题发现过程以及解决方案。
问题描述
kafka某业务topic,消费端消费速度远低于生产速度
原因分析:
原因汇总:
1、单条消息过大
2、存在远程调用且下游处理速度太慢,单次消耗时间 150ms~2000ms不等,极大限制了我侧kafka消费能力
解决方案:
解决汇总:
解决前已做的措施:代码优化与集群部署
1、逐条消费改为批量消费
2、多实例并行消费
a.增加分区
b.设置currency(注:在集群部署下节点*currency<=分区数量,最优配比)
3、kafka参数设置
a.kafka拉取消息体大小
b.轮训一次获取的条数
c.处理时间设置
4、开启线程池(实现多线程消费)文章来源:https://www.toymoban.com/news/detail-557669.html
至此,通过以上步骤缓解消费瓶颈文章来源地址https://www.toymoban.com/news/detail-557669.html
到了这里,关于kafka提高消费能力的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!