

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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` メトリクスをチェックし、このメトリックスがゼロより大きい期間持続していることで確認できます。

これは、Amazon Managed Service for Apache Flink アプリケーションの CloudWatch Logs でも、`LimitExceededException` エラーが続いているのを把握することで確認できます。

**解決策**: このシナリオを解決するために、次の 2 つの方法のいずれかを実行できます。
+ `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)」を参照してください。