問題現象
使用阿里雲雲訊息佇列 Kafka 版時,刪除Group後,仍然收到訊息堆積的警示資訊。
可能原因
發生訊息堆積警示資訊的原因如下:
0.10.2的Kafka服務端版本,開源Kafka未提供刪除Group和消費位點的KafkaAPI,因此刪除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下的消費位點超過了消費位點保留時間,消費位點不會被刪除。更多資訊,請參見為什麼消費位點到期了卻仍未被刪除?。
如果以上方法無法解決您的問題,您可以禁用訊息堆積的監控警示。關於如何禁用訊息堆積的警示規則,請參見CloudMonitor。