【发布时间】:2021-12-08 11:27:14
【问题描述】:
我正在尝试连接两个流,但我无法解释我的实现的输出。
val source = Source(1 to 10)
val sink = Sink.foreach(println)
val flow1 = Flow[Int].map(s => s + 1)
val flow2 = Flow[Int].map(s => s * 10)
val flowGraph = Flow.fromGraph(
GraphDSL.create() { implicit builder =>
import GraphDSL.Implicits._
val concat = builder.add(Concat[Int](2))
val broadcast = builder.add(Broadcast[Int](2))
broadcast ~> flow1 ~> concat.in(0)
broadcast ~> flow2 ~> concat.in(1)
FlowShape(broadcast.in, concat.out)
}
)
source.via(flowGraph).runWith(sink)
我希望这段代码有以下输出。
2
3
4
.
.
.
11
10
20
.
.
.
100
相反,我看到只打印了“2”。您能否解释一下我的实现有什么问题以及我应该如何更改程序以获得所需的输出。
【问题讨论】:
-
source.via(flow1).concat(source.via(flow2))。请注意,您 正在 重新运行source两次。
标签: scala akka akka-stream