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