0


kafka提高消费能力

项目场景:

因业务约束,发送到kafka的单条消息的大小达到了125k。并且存在远程调用瓶颈,目前阶段无法解耦。在此条件下,系统上了生产第一天就遇到了消费瓶颈,并且10分钟积压消息达到了100w+,为此记录问题发现过程以及解决方案。


问题描述

kafka某业务topic,消费端消费速度远低于生产速度


原因分析:

原因汇总:
1、单条消息过大
2、存在远程调用且下游处理速度太慢,单次消耗时间 150ms~2000ms不等,极大限制了我侧kafka消费能力


解决方案:

解决汇总:
解决前已做的措施:代码优化与集群部署
1、逐条消费改为批量消费
2、多实例并行消费

    a.增加分区
    b.设置currency(注:在集群部署下节点*currency<=分区数量,最优配比)

3、kafka参数设置

    a.kafka拉取消息体大小
    b.轮训一次获取的条数
    c.处理时间设置

4、开启线程池(实现多线程消费)

至此,通过以上步骤缓解消费瓶颈

标签: kafka java

本文转载自: https://blog.csdn.net/weixin_43950558/article/details/128004328
版权归原作者 废柴程序猿 所有, 如有侵权,请联系我们删除。

“kafka提高消费能力”的评论:

还没有评论