提案が必要です。たとえば、私は10個のグラフを作成して並列に実行するサンプルコードを作成しました。Akka Stream - 並列実行可能なグラフ
このアプローチは正しいですか、グラフ内に複数のソースを作成して1つのグラフで並列に実行する必要がありますか?
def createGraph(start: Int, end: Int, name: String) = {
RunnableGraph.fromGraph(GraphDSL.create() {
implicit builder =>
import GraphDSL.Implicits._
val s = Source(start to end)
val f = Flow[Int].map[String](x => x.toString)
val sink = Sink.foreach[String](x => println(name + ":" + x))
val t = builder.add(s)
val flow1 = builder.add(f)
t ~> flow1 ~> sink
ClosedShape
})
}
(1 to 10).map(x => createGraph(x, x + 10, "g" + x)).map(_.run())
おかげ アルン
:ストリームとして、いくつかの外部ソースから読み込むソース(最後に開始)の.map(_のtoString).runForeach(X => printlnを(S "$名: $ x ")) –
私は複雑なフロー処理知的財産を維持するためのメインコードから。問題のステートメントは、複数のソース情報があり、各ソースごとにグラフを実行する必要がある場合、ベストプラクティスとなります。たとえば、複数のソースが複数のカフカトピックを読んで、変換し、処理し、データベースにシンクすると考えるかもしれません。 – ASe
私はかなり奇妙に見えますが、なぜ私はそれをあまり指摘できません。私は自分のステージになるように時間を分け、マージやバランスを使ってそれらをまとめて一つのグラフにします。その後、そのグラフを1回だけ実行します。今あなたはn個の島を作成しています。 – akauppi