翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
専用スループットによる拡張ファンアウトコンシューマーの開発
Amazon Kinesis Data Streams では、拡張ファンアウトと呼ばれる機能を使用するコンシューマーを構築できます。この機能により、コンシューマーはシャードあたり 1 秒あたり最大 2 MB のデータのスループットを持つストリームからレコードを受信できます。このスループットは専用です。つまり、拡張ファンアウトを使用するコンシューマーは、ストリームからデータを受け取る他のコンシューマーと競合する必要がありません。Kinesis Data Streams は、ストリームのデータレコードを、拡張ファンアウトを使用するコンシューマーに送信します。そのため、これらのコンシューマーはデータをポーリングする必要はありません。
重要
ストリームあたり最大 20 のコンシューマーを登録して、拡張ファンアウトを使用できます。
拡張ファンアウトのアーキテクチャを以下の図に示します。Amazon Kinesis Client Library (KCL) のバージョン 2.0 以降を使用してコンシューマーを構築する場合、 は拡張ファンアウトを使用してストリームのすべてのシャードからデータを受信するようにコンシューマーKCLを設定します。を使用して拡張ファンアウトを使用するコンシューマーAPIを構築する場合は、個々のシャードをサブスクライブできます。
図に示す内容は以下のとおりです。
-
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。 |