gpt4 book ai didi

java - 如何更改 Akka 路由器的大小?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:15:54 24 4
gpt4 key购买 nike

我有一个这样的 Akka 路由器:

ActorRef router = getContext().actorOf(
new RoundRobinPool(instancecount)
.props(Props.create(Node.class, po)), po.getUID());

然后我想更改路由器 instancecount。我该怎么办?

最佳答案

我认为 Resizer 可能是您可以尝试为您的路由器池提供弹性以处理负载突发的东西。如果您想以编程方式设置带有调整器的路由器,那么它看起来像这样(取自 Routing 上的 Akka 示例 文档):

val resizer = DefaultResizer(lowerBound = 2, upperBound = 15)
val router3 = system.actorOf(Props[ExampleActor1].withRouter(
RoundRobinRouter(resizer = Some(resizer))))

在此示例中,池将从 2 个路由开始,但可以根据通过路由池头部的消息量扩展到 15 个。您也可以直接从您的 akka 配置中执行此操作。如果你有这样的配置(同样来自 Akka 文档):

akka.actor.deployment {
/myrouter2 {
router = round-robin
resizer {
lower-bound = 2
upper-bound = 15
}
}
}

然后你可以像这样设置你的池以利用配置:

val router = system.actorOf(Props[ExampleActor].withRouter(FromConfig()), "myrouter2")

查看我链接到的文档,了解有关如何为您的池设置 Resizer 的更多信息。希望这是满足您需求的解决方案。

关于java - 如何更改 Akka 路由器的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20594954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com