消费速度缓慢

最近更新时间:2025-10-17 14:51:52

我的收藏

问题概述

消费端消费消息速度缓慢。

可能原因

服务端负载较高
限流问题
客户端负载
消费端处理能力问题
网络问题

解决方法

服务端负载较高
如果想确认是否是服务端问题,可以在控制台查看高级监控里面的消费耗时,耗时信息表示服务端处理请求的耗时,如果服务端负载有问题,可以看到统计各阶段耗时较高,如下图:

限流问题 如果想确认是否是限流问题引起的,可以配置带宽超限告警。检查 监控 > 实例 是否已经达到实例的带宽峰值。如果已经达到带宽峰值,您需要升级实例的带宽峰值。关于如何升级实例配置,请参阅 升配实例

客户端负载
如果服务端没有性能问题,大概率是客户端消费能力不足。首先看一下分区和消费者的对应关系。如果一个消费者消费了太多分区,建议增加消费者的数量。尽量让一个消费者消费一个分区,如下图查看消费者和分区的对应关系:

消费端处理能力问题 如果消费者和分区的分配关系是正常的,那可以在控制台扩容分区提高数据消费的并行度。控制台扩容分区是即时无损的扩容的,不会影响您的业务。扩容分区如下图:

网络问题
排查一下客户端的负载情况。例如客户端机器的 CPU、内存、网卡等指标。如果是 Java 的进程,则着重关注 GC 和堆内存的使用情况。
消费链路问题
排查消息消费链路下游方面,是否存在其他原因导致消费速度慢。例如消费消息需要有一些同步操作完成后,才向服务端提交 offset。下游常见的异常操作有:
频繁打印日志。
写入数据库较慢。
业务逻辑较为复杂,导致处理消息较慢。
如果短时间不能快速解决,建议增加 Topic 分区数,并扩容消费者实例数量,以迅速增加消费消息速度。