Akka演员背压/流量控制
假设我有一个包含五个参与者的RoundRobinPool路由器,以及一个包含100000个工作项的列表,我需要让这些参与者进行处理Akka演员背压/流量控制,akka,Akka,假设我有一个包含五个参与者的RoundRobinPool路由器,以及一个包含100000个工作项的列表,我需要让这些参与者进行处理 val myrouter: ActorRef = context.actorOf(RoundRobinPool(5).props(Props[Worker]), "myrouter") for (a <- mylist) myrouter ! a val myrouter:ActorRef= context.actorOf(RoundRobinPo
val myrouter: ActorRef =
context.actorOf(RoundRobinPool(5).props(Props[Worker]), "myrouter")
for (a <- mylist)
myrouter ! a
val myrouter:ActorRef=
context.actorOf(RoundRobinPool(5).props(props[Worker]),“myrouter”)
对于(a),您可以查看工作拉动模式。您还可以使用Akka Streams(源代码是您的工作列表)和ask(通过mapAsync
)将背压纳入工作处理中。谢谢,工作拉动模式看起来很有趣。我知道Akka streams也可以解决这个问题,但对我当前的代码库来说,这是一个太大的破坏性变化。你可以研究工作拉动模式。你也可以使用Akka streams(源代码是您的工作列表)并要求(通过mapsync
)将背压纳入您的工作处理中。谢谢,工作拉动模式看起来很有趣。我知道Akka streams也可以解决问题,但对我当前的代码库来说,这是一个太大的破坏性变化。