【问题标题】:Why is my Akka application hanging after 1 to 2 days?为什么我的 Akka 应用程序在 1 到 2 天后挂起?
【发布时间】:2018-05-05 17:47:05
【问题描述】:

在我的 Akka HTTP 应用程序中,在某些情况下,我必须多次初始化我的 actor 系统。就像在我的服务中一样,我需要执行者和参与者系统的隐式 val。所以,我在我的服务层类中像这样初始化了一个演员系统 4 次:

private implicit val actorSystem = ActorSystem()

我只终止了一个根级别的参与者系统。其他未终止。

这会影响我的应用程序性能吗?因为我的应用程序在运行 1 到 2 天后挂起。

【问题讨论】:

    标签: scala akka akka-http


    【解决方案1】:

    在您的应用程序中使用多个参与者系统是个坏主意。

    基本上,每个 ActorSystem 都带有一个由 fork-join 池支持的默认调度程序。这个池在平衡工作和可用线程方面做得非常好。也就是说,如果您在同一个 JVM 上运行多个 Actor 系统,最终会创建太多(虚拟)线程,从而降低进程的性能。理想情况下,您希望拥有与 CPU 内核一样多的线程,并具有最佳利用率。

    这篇文章请看一遍https://manuel.bernhardt.io/2016/08/23/akka-anti-patterns-too-many-actor-systems/

    如果这回答了您的问题,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-27
      • 1970-01-01
      • 2010-10-12
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多