Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Kinesis データストリームからのアップストリームまたはソーススロットリング
症状:アプリケーションがアップストリームのソース Kinesis LimitExceededExceptions
データストリームから受信しています。
「考えられる原因」:Apache Flink ライブラリ Kinesis コネクタのデフォルト設定は、Kinesis データ・ストリーム・ソースから読み込むように設定されており、GetRecords
呼び出しごとにフェッチされるレコードの最大数は非常にアグレッシブなデフォルト設定になっています。Apache Flink はデフォルトで 1 GetRecords
回の呼び出しで 10,000 レコードを取得するように設定されています (この呼び出しはデフォルトで 200 ミリ秒ごとに行われます)。ただし、シャードあたりの制限は 1,000 レコードのみです。
このデフォルトの動作により、Kinesis データストリームからデータを使用しようとするとスロットリングが発生し、アプリケーションのパフォーマンスと安定性に影響する可能性があります。
メトリクスを確認して、 CloudWatch ReadProvisionedThroughputExceeded
このメトリクスがゼロより大きい期間が長時間または持続していることを確認することで、これを確認できます。
また、Apache Flink 用の Amazon CloudWatch マネージドサービスのログでも、エラーが続いていることを確認できます。LimitExceededException
解決策:このシナリオを解決するには、次の 2 つの方法のいずれかを実行できます。
1
GetRecords
回の呼び出しで取得されるレコード数のデフォルト制限を下げてください。Apache Flink 用 Amazon マネージドサービスアプリケーションでアダプティブリードを有効にします。アダプティブリード機能の詳細については、「SHARD_USE_ADAPTIVE_READS
」を参照してください。