广播和 Concat 在 Akka Stream 中不起作用

Broadcast and Concat don't work in Akka Stream

我想在 Akka Stream 中创建一个带有 BroadcastConcat 的图表,但以下代码不起作用。我想知道为什么它不起作用。

  val src = Source(1 to 3)
  val sink = Sink.foreach(println)
  RunnableGraph.fromGraph(GraphDSL.create() { implicit b =>
    import GraphDSL.Implicits._
    val bcast = b.add(Broadcast[Int](2))
    val concat = b.add(Concat[Int](2))

    src  ~> bcast ~> concat ~> sink
            bcast ~> concat

    ClosedShape
  }).run()

我的预期输出是

1
2
3
1
2
3

但是,实际上什么也没有输出。我想让你告诉我为什么我的代码不起作用。

广播只有在其下游都有需求时才能工作,并且一次只能连接一个上游的需求(否则你会想要合并等),因此广播不能广播任何东西。