2017-04-13 8 views
2

私はすでにキネシスシャードと複数の消費者に関するいくつかの質問を読んだことがありますが、それでも動作するかどうかはまだ分かりません。キネシスストリーム/シャード - 複数の消費者

私の使用例:シャードが1つしかないキネシスストリームがあります。私は別々のラムダ関数を使ってこのシャードを使いたいと思います。それは、各ラムダ関数がそれ自身のシャードイテレータを持つようなものです。

それは可能ですか?同じストリーム/シャードから複数のラムダコンシューマ(ストリームベース)の読み込みを設定しますか?

答えて

1

はい、これは問題ありません。

シャードの数は、ストリームが持つことができるコンシューマの数を制限しません。 この場合、各ラムダの同時呼び出しの数が制限されます。これは、各コンシューマに対して、同時に実行する破片の数があることを意味します。

詳細はthis docを参照してください。

+0

まだ私には意味がありません。同じシャードから1つのシャードと複数の機能を使用すると、同時に実行することはできません。新しいレコードがストリームに到着すると、ラムダは次々に呼び出されます。 –

+0

@ p.magalhaesはい、あなたは正しいです。基本的に、シャードが1つしかなく、同じコンシューマに対して並列に動作するラムダ関数を持つことはできません。シャードを十分に速く消費しなければならず、同じ消費者に対して同じシャードを消費するスレッドを複数持つことはできません。これを例としてhttp://stackoverflow.com/a/34509567/2836435を参照してください。 KinesisのAWS Lambdaも同様です。 – SerhatCan

+1

これは間違っていると思います。 1つのシャードと2つの異なるコンシューマを使用すると、新しいレコードが到着すると同時に2つのコンシューマを起動して実行させることができます。私は確かに、メッセージが到着したときに最後の100の2つの関数で2つの関数を同時に実行しようとしました – DaMaill

関連する問題