为什么我的 Akka 应用程序在 1 到 2 天后挂起?

Why is my Akka application hanging after 1 to 2 days?

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

中像这样初始化了一个 actor 系统 4 次
private implicit val actorSystem = ActorSystem()

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

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

在您的应用程序中使用多个 actor 系统不是一个好主意。

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

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

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