诊断Kafka消息积压
在消息处理过程中,如果客户端的消费速度跟不上服务端的发送速度,未处理的消息会越来越多,这部分消息就被称为堆积消息。消息没有被及时消费就会产生消息堆积,从而会造成消息消费延迟。
分布式消息服务Kafka版在控制台提供了消息积压诊断功能,如果消息存在堆积,诊断后会生成诊断记录,诊断记录显示消息堆积可能的原因、受影响的分区或者broker,以及解决消息堆积的建议。
前提条件
- 已创建Kafka实例,并且消费组正在以非assign方式消费消息中。
- 一个消费组正在诊断中时,无法对其他消费组进行诊断,也无法对此消费组消费的其他Topic进行诊断。
操作流程
步骤一:诊断前检查
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
- 在左侧导航栏单击“Kafka实例”,进入Kafka实例列表页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在左侧导航栏选择“分析与诊断 > 消息积压诊断”,进入消息积压诊断页面。
- 选择需要诊断的消费组名称和Topic名称,单击“诊断前检查”。
检查成功后,在页面上方显示“预检查成功”,并显示内存使用率、CPU利用率、分区订阅关系、消息积压情况和流量突增情况的检查结果。
图2 诊断前检查
“消息积压情况”显示无消息积压时,无法进行消息积压诊断。显示有消息积压,并且消费组正在以非assign方式消费消息中,才能进行积压诊断。