问题现象

使用阿里云消息队列Kafka版时,删除Group后,仍然收到消息堆积的告警信息。

可能原因

发生消息堆积告警信息的原因如下:
  • 2.0.0以前的Kafka服务端版本,开源Kafka未提供删除Group和消费位点的OpenAPI,因此删除Group,只是从控制台逻辑删除,并不会实际删除服务端消费位点等信息。堆积告警是根据消息位点判断处理的,因此您还会收到堆积告警。
  • 删除Group后,消费线程未停止或者未发生Rebalance,那么消费线程还可以继续正常消费,因此还会收到堆积告警。

解决方案

删除Group后,如果您不希望继续收到消息堆积的告警信息,请参见以下操作进行处理:
  • 确认服务端版本,请根据服务端版本情况执行以下操作:
    • 2.2.0及以上版本,请根据以下方式操作:
      • Group中没有存活的消费者线程(存活的消费者线程即以Subscribe方式订阅的消费者线程),直接删除Group,如果删除Group后,仍然收到告警信息,请排查是否有消费线程在提交消费位点。
      • Group内有任一存活的消费者线程,则可以将不需要统计消息堆积的分区的消费位点重置到位点0,该分区的堆积信息将不再被统计。具体操作,请参见重置消费位点
    • 2.2.0以前的版本,请根据情况选择如下一种方式操作:
      • 等待位点过期(过期时间为消费位点保留时间)。该版本对应的开源Apache Kafka未提供删除消费位点的接口,无法直接删除。位点在超过消费位点保留期限后,如果没有任何更新,就会被过期清理。消费位点保留时间的配置方法,请参见变更消息配置
      • 若无法等待消费位点过期,请在确保Group存在的情况下,通过控制台按分区重置位点方式将不需要统计消息堆积的分区的消费位点重置到0,该分区的堆积信息将不再被统计。具体操作,请参见重置消费位点
      • Group中没有存活的消费者线程,您可以将服务端版本升级至2.2.0或以上版本,重新创建Group,再删除。关于如何升级服务端版本,请参见升级实例版本
    说明 在2.2.0及以上版本中,只要Group内有任一存活的消费者线程,即使该Group下的消费位点超过了消费位点保留时间,消费位点不会被删除。更多信息,请参见为什么消费位点过期了却仍未被删除?
  • 如果以上方法无法解决您的问题,您可以禁用消息堆积的监控告警。关于如何禁用消息堆积的告警规则,请参见监控报警