Amazon Kinesis Data Streams
開発者ガイド

KPL とプロデューサーコードの統合

Kinesis Producer Library (KPL) は独立したプロセスで実行され、IPC を使用して親ユーザープロセスと通信します。このアーキテクチャは、マイクロサービスと呼ばれる場合があり、次の 2 つの主な理由からこれが選択されます。

1) KPL がクラッシュしても、ユーザープロセスはクラッシュしません

プロセスには Kinesis Data Streams と無関係なタスクが含まれている場合があり、KPL がクラッシュしてもオペレーションを続行できます。また、親ユーザープロセスが KPL を再起動し、完全に機能する状態に復旧することもできます (この機能は、正式なラッパーに含まれています)。

メトリクスを Kinesis Data Streams に送信するウェブサーバーがその例です。このサーバーは、Kinesis Data Streams 部分が動作を停止してもページの提供を続行できます。そのため、KPL のバグが原因でサーバー全体がクラッシュすると、不要なサービス停止が発生します。

2) 任意のクライアントをサポートできます

正式にサポートされている言語以外の言語を使用するお客様もいます。これらのお客様も KPL を簡単に使用できます。

推奨される使用状況

使用状況の異なるユーザーに推奨される設定を次の表に示します。この表を参考に、KPL を使用できるかどうか、どのように使用できるかを判断できます。集約が有効な場合、コンシューマー側で集約解除を使用してレコードを抽出する必要があることにも注意してください。

プロデューサー側の言語 コンシューマー側の言語 KCL バージョン チェックポイントロジック KPL の使用可否 注意
Java 以外 * * * いいえ 該当なし
Java Java Java SDK を直接使用 該当なし はい 集約を使用する場合、GetRecords を呼び出した後に、提供された集約解除ライブラリを使用する必要があります。
Java Java 以外 SDK を直接使用 該当なし はい 集約を無効にする必要があります。
Java Java 1.3.x 該当なし はい 集約を無効にする必要があります。
Java Java 1.4.x 引数なしでチェックポイントを呼び出す はい なし
Java Java 1.4.x 明示的なシーケンス番号を使用してチェックポイントを呼び出す はい 集約を無効にするかコードを変更し、チェックポイント作成用の拡張されたシーケンス番号を使用します。
Java Java 以外 1.3.x + 複数言語デーモン + 言語固有のラッパー 該当なし はい 集約を無効にする必要があります。

このページの内容: