専用スループットによる拡張ファンアウトコンシューマーの開発 - Amazon Kinesis Data Streams

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

専用スループットによる拡張ファンアウトコンシューマーの開発

Amazon Kinesis Data Streams では、拡張ファンアウトと呼ばれる機能を使用するコンシューマーを構築できます。この機能により、コンシューマーはシャードあたり 1 秒あたり最大 2 MB のデータのスループットを持つストリームからレコードを受信できます。このスループットは専用です。つまり、拡張ファンアウトを使用するコンシューマーは、ストリームからデータを受け取る他のコンシューマーと競合する必要がありません。Kinesis Data Streams は、ストリームのデータレコードを、拡張ファンアウトを使用するコンシューマーに送信します。そのため、これらのコンシューマーはデータをポーリングする必要はありません。

重要

ストリームあたり最大 20 のコンシューマーを登録して、拡張ファンアウトを使用できます。

拡張ファンアウトのアーキテクチャを以下の図に示します。Amazon Kinesis Client Library (KCL) のバージョン 2.0 以降を使用してコンシューマーを構築する場合、 は拡張ファンアウトを使用してストリームのすべてのシャードからデータを受信するようにコンシューマーKCLを設定します。を使用して拡張ファンアウトを使用するコンシューマーAPIを構築する場合は、個々のシャードをサブスクライブできます。

2 つのシャードと 2 つのコンシューマーを使用した拡張ファンアウトアーキテクチャを示すワークフロー図。2 つのコンシューマーはそれぞれ、拡張ファンアウトを使用してストリームの両方のシャードからデータを受け取っています。

図に示す内容は以下のとおりです。

  • 2 つのシャードを持つストリーム。

  • ストリームからデータを受信するために拡張ファンアウトを使用する 2 つのコンシューマー (コンシューマー X とコンシューマー Y)。2 つのコンシューマーはそれぞれ、ストリームのすべてのシャードとすべてのレコードにサブスクライブされています。のバージョン 2.0 以降を使用してコンシューマーKCLを構築する場合、 は、そのコンシューマーをストリームのすべてのシャードKCLに自動的にサブスクライブします。一方、 を使用してコンシューマーAPIを構築する場合は、個々のシャードをサブスクライブできます。

  • コンシューマーがストリームからデータを受け取るために使用する拡張ファンアウトパイプを表す矢印。拡張されたファンアウトパイプは、シャードあたり最大 2 MB/秒 のデータを送信します。他のパイプやコンシューマーの総数は関係ありません。

コンシューマー全体で共有される と拡張ファンアウトコンシューマーの違い

次の表は、デフォルトの共有スループットコンシューマーと拡張ファンアウトコンシューマーを比較しています。メッセージ伝播遅延は、ペイロードディスパッチ APIs ( PutRecordや などPutRecords) を使用して送信されたペイロードが、ペイロード消費 APIs ( GetRecordsや など) を介してコンシューマーアプリケーションに到達するまでにかかったミリ秒単位で定義されますSubscribeToShard

この表では、共有スループットコンシューマーと拡張ファンアウトコンシューマーを比較します。
特性 拡張ファンアウトなしの共有スループットコンシューマー ファンアウトコンシューマーの強化
読み取りスループット

合計 2 で修正されましたMB/sec per shard. If there are multiple consumers reading from the same shard, they all share this throughput. The sum of the throughputs they receive from the shard doesn't exceed 2 MB/sec。

拡張ファンアウトを使用するコンシューマーが登録されるにつれてスケールされます。拡張ファンアウトを使用するように登録された各コンシューマーは、他のコンシューマーとは関係なく、シャードあたりに受け取る独自の読み取りスループットが最大 2 MB/秒です。

メッセージの伝播遅延

ストリームから読み取るコンシューマーが 1 つの場合は平均約 200 ms です。コンシューマーが 5 つの場合、この平均は最大約 1,000 ms まで上がります。

コンシューマーが 1 つまたは 5 つかによって、一般的に平均 70 ms です。

コスト 該当しない

データ取得コストおよびコンシューマー - シャード時間料金がかかります。詳細については、「Amazon Kinesis Data Streams の料金」を参照してください。

レコードの配信モデル

HTTP を使用してモデルをプルオーバーします GetRecords。

Kinesis Data Streams は、 を使用してレコードを HTTP/2 でプッシュします SubscribeToShard。