翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Kinesis Data Streams プロデューサーは、ユーザーデータレコードを Kinesis data stream に配置する (データの取り込みとも呼ばれます) アプリケーションです。Kinesis プロデューサーライブラリ (KPL) は、プロデューサーアプリケーションの開発を簡素化し、デベロッパーが Kinesis データストリームへの高い書き込みスループットを実現できるようにします。
Amazon KPLで をモニタリングできます CloudWatch。詳細については、「Amazon で Kinesis プロデューサーライブラリをモニタリングする CloudWatch」を参照してください。
トピック
注記
KPL 最新バージョンにアップグレードすることをお勧めします。 KPLは、最新の依存関係とセキュリティのパッチ、バグ修正、および下位互換性のある新機能を含む新しいリリースで定期的に更新されます。詳細については、https://github.com/awslabs/amazon-kinesis-producer「/releases/
のロールを確認する KPL
KPL は easy-to-use、Kinesis データストリームへの書き込みに役立つ、高度に設定可能なライブラリです。これは、プロデューサーアプリケーションコードと Kinesis Data Streams APIアクションの間の仲介として機能します。KPL は次の主要なタスクを実行します。
-
自動的で設定可能な再試行メカニズムにより 1 つ以上の Kinesis Data Streams へ書き込む
-
レコードを収集し、
PutRecords
を使用して、リクエストごとに複数シャードへ複数レコードを書き込む -
ユーザーレコードを集約し、ペイロードサイズを増加させ、スループットを改善する
-
Kinesis Client Library (KCL) とシームレスに統合して、コンシューマーのバッチレコードを集約解除します。
-
プロデューサーのパフォーマンスを可視化するために、ユーザーに代わって Amazon CloudWatch メトリクスを送信します
KPL は、 でAPI利用可能な Kinesis Data Streams とは異なることに注意してくださいAWS SDKs
を使用する利点を理解する KPL
次のリストは、Kinesis Data Streams プロデューサーの開発KPLに を使用することの主な利点の一部を示しています。
KPL は、同期または非同期のユースケースで使用できます。同期動作を使用する特別な理由がないかぎり、非同期インターフェイスの優れたパフォーマンスを使用することを推奨します。これら 2 つのユースケースの詳細とコード例については、を使用して Kinesis データストリームに書き込む KPLを参照してください。
- パフォーマンスのメリット
-
KPL は、高性能のプロデューサーの構築に役立ちます。Amazon EC2インスタンスが、数百または数千の低電力デバイスから 100 バイトのイベントを収集し、Kinesis データストリームにレコードを書き込むためのプロキシとして機能する状況を考えてみます。これらのEC2インスタンスはそれぞれ、データストリームに 1 秒あたり数千のイベントを書き込む必要があります。必要なスループットを実現するには、お客様の側で、再試行ロジックとレコード集約解除に加え、バッチ処理やマルチスレッドなどの複雑なロジックをプロデューサーに実装する必要があります。KPL が、これらのタスクをすべて実行します。
- コンシューマー側の使いやすさ
-
コンシューマー側の開発者が Java で KCL 使用する場合、追加作業なしで KPL が統合されます。は、複数のKPLユーザーレコードで構成される集約 Kinesis Data Streams レコードKCLを取得すると、 を自動的に呼び出しKPLて個々のユーザーレコードを抽出してから、ユーザーに返します。
を使用せずに APIオペレーション
GetRecords
を直接KCL使用するコンシューマー側のデベロッパーの場合、Java KPL ライブラリを使用して個々のユーザーレコードを抽出してからユーザーに返すことができます。 - プロデューサーのモニタリング
-
Amazon と を使用して、Kinesis Data Streams プロデューサーを収集、モニタリング CloudWatch 、分析できますKPL。は、 CloudWatch ユーザーに代わってスループット、エラー、およびその他のメトリクスを にKPL出力し、ストリーム、シャード、またはプロデューサーレベルでモニタリングするように設定できます。
- 非同期アーキテクチャ
-
KPL は Kinesis Data Streams に送信する前にレコードをバッファリングする可能性があるため、ランタイムを続行する前に、発信者アプリケーションがレコードがサーバーに到着したことの確認をブロックして待機するように強制することはありません。レコードを KPL に配置する呼び出しは、必ずすぐに処理が戻り、レコードの送信やサーバーからの応答の受信を待ちません。代わりに、レコードを Kinesis Data Streams に送信した結果を後で受信するための
Future
オブジェクトが作成されます。これは、 の非同期クライアントと同じ動作です AWS SDK。
を使用しないタイミングを理解する KPL
KPL では、ライブラリ内で最大 RecordMaxBufferedTime
まで追加の処理遅延が生じる場合があります (ユーザーが設定可能)。RecordMaxBufferedTime
の値が大きいほど、パッキング効率とパフォーマンスが向上します。この追加の遅延を許容できないアプリケーションは、 AWS SDKを直接使用する必要がある場合があります。Kinesis Data Streams で を使用する AWS SDK方法の詳細については、「」を参照してくださいAmazon Kinesis Data Streams API と AWS SDK for Java を使用してプロデューサーを開発する。KPL の RecordMaxBufferedTime
などのユーザー設定可能なプロパティの詳細については、「Kinesis Producer Library を設定する」を参照してください。