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

Nil*_*esh 1 scala akka akka-http

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

private implicit val actorSystem = ActorSystem()
Run Code Online (Sandbox Code Playgroud)

我只终止了一个处于根级别的actor系统.其他人没有被终止

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

Cha*_*kar 8

在您的应用程序中使用许多actor系统是一个坏主意.

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

请访问此文章一次https://manuel.bernhardt.io/2016/08/23/akka-anti-patterns-too-many-actor-systems/

如果这回答了你的问题,也请告诉我.