什么是Akka(Scala)中的Int,Out类型

时间:2018-12-31 07:06:58

标签: scala akka akka-stream

我正在研究Akka Stream。当我阅读有关Akka中的Balance的示例时。

在此示例中,

什么是 In Out 类型?

def balancer[In, Out](worker: Flow[In, Out, Any], workerCount: Int): Flow[In, Out, NotUsed] = {
  import GraphDSL.Implicits._

  Flow.fromGraph(GraphDSL.create() { implicit b ⇒
    val balancer = b.add(Balance[In](workerCount, waitForAllDownstreams = true))
    val merge = b.add(Merge[Out](workerCount))

    for (_ ← 1 to workerCount) {
      // for each worker, add an edge from the balancer to the worker, then wire
      // it to the merge element
      balancer ~> worker.async ~> merge
    }

    FlowShape(balancer.in, merge.out)
  })
}

val processedJobs: Source[Result, NotUsed] = myJobs.via(balancer(worker, 3))

1 个答案:

答案 0 :(得分:1)

From the definition of Flow

  

流量

     

一个处理阶段,只有一个输入和输出,   通过转换数据元素连接其上下游   流过它。

通常来说,InOuttype parameters。具体来说,它们用于传达输入类型(这是您放入流中的类型)和输出类型(即由流产生的类型)。