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

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

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

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

解决方法:

我认为Resizer可能是您可以尝试在路由器池中提供弹性以处理突发负载的工具.如果您想以编程方式设置带有调整器的路由器,则外观应类似于此(取自Routing上的Akka示例)
 docs):

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

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

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

然后,您可以像这样设置池以利用配置:

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

查看我链接到的文档,以获取有关如何为您的游泳池设置调整大小的更多信息.希望这是一个满足您需求的解决方案.

上一篇:android:在不调整父级的情况下调整子级的大小


下一篇:如何实现移动端页面默认横屏显示