2017-07-12 2 views
0

多くのイベントを同時にチェックポイントすると、ProvisionedThroughputExceededExceptionが発生しています。Amazon KCLでチェックポイントを設定するとProvisionedThroughputExceededExceptionがスローされます

例外スタックトレースは以下の通りです:

com.amazonaws.services.kinesis.model.ProvisionedThroughputExceededException: Rate exceeded for shard shardId-000000000000 in stream mystream under account accountid. (Service: AmazonKinesis; Status Code: 400; Error Code: ProvisionedThroughputExceededException; Request ID: ea36760b-9db3-0acc-bbe9-87939e3270aa) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1529) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1167) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:948) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:635) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:618) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:586) 
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:573) 
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:445) 
at com.amazonaws.services.kinesis.AmazonKinesisClient.doInvoke(AmazonKinesisClient.java:1645) 
at com.amazonaws.services.kinesis.AmazonKinesisClient.invoke(AmazonKinesisClient.java:1621) 
at com.amazonaws.services.kinesis.AmazonKinesisClient.getShardIterator(AmazonKinesisClient.java:909) 
at com.amazonaws.services.kinesis.clientlibrary.proxies.KinesisProxy.getIterator(KinesisProxy.java:291) 
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.SequenceNumberValidator.validateSequenceNumber(SequenceNumberValidator.java:79) 
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer.checkpoint(RecordProcessorCheckpointer.java:120) 
at com.amazonaws.services.kinesis.clientlibrary.lib.worker.RecordProcessorCheckpointer.checkpoint(RecordProcessorCheckpointer.java:90) 

あなたがここに見ることができるように、例外がKCLライブラリ内

RecordProcessorCheckpointer.java:90 

で上昇しています。チェックポイントとスループットの関係は何ですか?

答えて

0

キネシスはレート制限され、

PutRecord要求にのみ関与シャード上のプロビジョニングスループットの限界まで処理することができます。これを超過するとProvisionedThroughputExceededException

ストリームのシャードを2つに分割し、ハッシュキースペースを均等に分割します。メトリックが単一のシャードの範囲内にある場合は不要ですが、1000 transactions/secの書き込み容量を最初に使用した場合は、500msそのシャードのアクティビティは残りの半分に抑えられ、避けることはできません1つのシャードで調整します。

スロットルされた要求の短い遅延の後に自動再試行を構成できます。例があればSDKのドキュメントをチェックしてください。

+0

チェックポインティング時にエラーが発生しました... – Edmondo1984

+0

チェックポインティングはこの例外をスローしません。チェックポイントで関連するシーケンス番号を持つ行ごとに余分な列を入力するだけです... 'ProvisionedThroughputExceededException'はスループットの上限を超えています。 –

+0

余分な行どこですか?私たちは実際にチェックポイント時にキネシスに新しいレコードを追加していますか? – Edmondo1984

関連する問題