2016-10-03 5 views
1

ストリーミングをサポートしていないデータベースに対して、どのように再アクティブストリームAPIを提供しますか? likeは例えばdynamodbと言うことができます。 getコールをするとき、dynamodbはすべての結果を返します。だから私がソースでgetコールをラップしても、どのように私は下流の段階から背圧を処理するのですか?また、どのように私はdbに書き込み呼び出しを実装するのですか?私のシンクはどのように見えますか?これに関するあらゆる指針が役立ちます。データベースにリアクティブAPIを提供する

答えて

0

1つのオプションは、使用してデータベースSourceを実装することですActorPublisher -

参照:http://doc.akka.io/docs/akka/2.4.11/scala/stream/stream-integrations.html#ActorPublisher

ただ、この特性で混合し、あなたにダウン扱うことができる反応性ストリーム対応のデータ・パブリッシャを与えるコマンドインタフェースを実装しますストリーム背圧。購読者がダウンストリームでより多くのデータをプルすると、パブリッシャーはRequestというメッセージを受け取り、より多くのデータをダウンストリームに積極的にプッシュする必要がある場合、現在の認識された需要にアクセスできるようになります。あなたはそれからSourceを作成することによって、あなたのアッカストリームパイプラインにこの出版社を差し込むことができます。

Source.actorPublisher[Data](MyPublisher.props).runWith(MySink) 

基礎となるDBは、反応性そのものではないという事実に対処するためには、内のいくつかのバッファリングとポーリングロジックを実装する必要がありますActorPublisher

関連する問題