1

ストリーミングをサポートしていないデータベースに反応ストリーム API を提供するにはどうすればよいですか? たとえばdynamodbとしましょう。get 呼び出しを実行すると、dynamodb はすべての結果を返します。ソースで get 呼び出しをラップしたとしても、ダウンストリーム ステージからのバックプレッシャーをどのように処理すればよいでしょうか? また、書き込み呼び出しを db に実装するにはどうすればよいですか? 私のシンクはどのように見えますか?これに関する指針は役に立ちます。

4

1 に答える 1

0

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

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

この特性を混ぜてコマンド インターフェイスを実装するだけで、ダウン ストリーム バックプレッシャーを処理できるリアクティブ ストリームに準拠したデータ パブリッシャーが得られます。サブスクライバーがダウン ストリームでより多くのデータをプルすると、パブリッシャーはRequestメッセージを受け取ります。より多くのデータをダウン ストリームで積極的にプッシュする必要がある場合は、現在認識されている需要にアクセスできます。次に、このパブリッシャーから を作成して、Akka Streams パイプラインにプラグインできますSource

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

基礎となる DB 自体が非反応的であるという事実に対処するには、ActorPublisher.

于 2016-10-18T19:59:59.373 に答える