

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

# Kinesis 資料串流的上游或來源限流
<a name="troubleshooting-source-throttling"></a>

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

**潛在原因**：Apache Flink 程式庫 Kinesis 連接器的預設設定設定為從 Kinesis 資料串流來源讀取，且每次 `GetRecords` 呼叫擷取的最大記錄數目具有非常積極的預設設定。Apache Flink 預設設定為每次`GetRecords`呼叫擷取 10，000 個記錄 （此呼叫預設為每 200 毫秒），但每個碎片的限制只有 1，000 個記錄。

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

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

您也可以透過觀察持續的`LimitExceededException`錯誤，在 Amazon Managed Service for Apache Flink 應用程式的 CloudWatch 日誌中看到此情況。

**解決**方法：您可以執行下列兩項操作之一來解決這種情況：
+ 降低每次`GetRecords`呼叫擷取的記錄數量的預設限制
+ 在 Amazon Managed Service for Apache Flink 應用程式中啟用自適應讀取。如需適性讀取功能的詳細資訊，請參閱 [SHARD\$1USE\$1ADAPTIVE\$1READS](https://nightlies.apache.org/flink/flink-docs-release-1.10/api/java/org/apache/flink/streaming/connectors/kinesis/config/ConsumerConfigConstants.html#SHARD_USE_ADAPTIVE_READS)