【问题标题】:how to do load balancing on remote Actors in Akka?如何在 Akka 中对远程 Actor 进行负载平衡?
【发布时间】:2018-05-07 12:41:26
【问题描述】:

我在一个分布式环境中工作,我必须在远程系统中设置 Actor。我想在所有远程参与者之间分配负载。谁能建议我在集群中平衡负载的最佳方法?我当前的场景是在一个远程系统中,我有 10 个正在运行的演员。例如,假设我有 3 个系统,系统有 10 个演员,我想平衡所有 30 个演员的负载。

【问题讨论】:

  • “最佳”方式很大程度上取决于您的情况,但您可能对 Akka 文档的“路由”一章感兴趣:doc.akka.io/docs/akka/2.5.3/scala/routing.html
  • 不完全是最新的博文,但也许this 有用。
  • Akka 负载均衡器根据我们指定的子节点的数量创建参与者的内部子节点。在我的情况下,我不能使用任何参与者来处理我的请求我希望特定请求由特定参与者执行
  • @stholzm 文档没有关于演员平衡列表的示例说明。他们通过创建一个子actor池来进行负载平衡。
  • 看来集群共享可以解决您的问题。默认情况下,您将获得所需的功能。请参考以下链接 - doc.akka.io/docs/akka/2.5/cluster-sharding.html

标签: scala akka akka-cluster


【解决方案1】:

分配工作的一种好方法是从工作人员那里拉出工作,而不是集中决策和推动,如果进入的工作率高于实际处理的速度,这可能会使工作人员节点超负荷。

这里有一个示例项目和教程,显示工人演员在这里工作:https://developer.lightbend.com/guides/akka-distributed-workers-scala/

【讨论】:

    猜你喜欢
    • 2015-08-16
    • 2019-02-02
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 2023-03-17
    • 2015-09-09
    • 1970-01-01
    相关资源
    最近更新 更多