Kinesis 資料串流的上游或來源限流 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Kinesis 資料串流的上游或來源限流

徵狀:應用程式遇到來自其上游來源 Kinesis 資料串流的 LimitExceededExceptions

潛在原因:Apache Flink 程式庫 Kinesis 連接器的預設設定設定為從 Kinesis 資料串流來源讀取,且每次 GetRecords 呼叫擷取的最大記錄數目具有非常積極的預設設定。Apache Flink 默認配置為每次GetRecords調用 10,000 條記錄(默認情況下每 200 毫秒進行一次調用),儘管每個碎片的限制僅為 1,000 條記錄。

嘗試從 Kinesis 資料串流取用時,此預設行為可能會導致限流,從而影響應用程式的效能和穩定性。

您可以通過檢查 CloudWatch ReadProvisionedThroughputExceeded指標並查看此指標大於零的長時間或持續時間來確認這一點。

您也可以透過觀察持續LimitExceededException錯誤,在適用於 Apache Flink 應用程式的 Amazon 受管服務的 CloudWatch 日誌中看到這一點。

決方案:您可以執行下列其中一項作業來解決此案例:

  • 降低每GetRecords次呼叫擷取的記錄數目的預設限制

  • 在您的 Amazon 受管服務中為 Apache Flink 應用程式啟用自適應性讀取。如需適性讀取功能的詳細資訊,請參閱 SHARD_USE_ADAPTIVE_READS