如何为用户提供路由功能

时间:2014-11-19 10:15:42

标签: akka akka-stream

我有以下路径 -

 kafkaStream[message] -> 
 kafkaStream[message] -> mergedKafkaStream[message] -> stream[EnrichedMessage] -> I/O
 kafkaStream[message] -> 

我不知道如何用akka stream方式写这个。 我试过跟(伪)。

KafkaStream extends ActorPublisher[message] {

}

IOHandler extends ActorSubscriber {

}

k1,k2,k3是kafka流媒体发布者

f = Flow[message].map(_.enrichMessage)

FlowGraph { b =>
  k1 ~> merge
  k2 ~> merge
  k3 ~> merge
  merge ~> f ~> ioHandlerSink
}

所以这就是我将发布商连接到接收器的方式。但是我想要解决的问题是缓慢的IO。 IOHandler actor处理消息非常慢,所以我如何拥有多个IOHandler,我应该能够分发任务。而且我也想保持背压,不要使用火,忘记使用路由器。

我是akka流的新手,所以建议我一个出路。

由于

1 个答案:

答案 0 :(得分:-1)

您可以使用IOHandler中的Balance联结路由到多个FlowGraph接收器。