Akka 2.x 需要许多命令来引用ActorSystem
. 所以,要创建一个演员的实例,MyActor
你可能会说:
val system = ActorSystem()
val myActor = system.actorOf(Props[MyActor])
由于经常需要ActorSystem
: 许多代码示例省略了代码的创建,并假设读者知道system
变量的来源。
如果你的代码在不同的地方产生actors,你可以复制这个代码,可能会创建额外ActorSystem
的实例,或者你可以尝试ActorSystem
通过引用一些全局或传递来共享同一个实例ActorSystem
。
Akka 文档在标题“演员系统”下提供了演员系统的一般概述,并且有类的文档ActorSystem
。但是这些都不能很好地解释为什么 Akka 的用户不能仅仅依靠 Akka 来管理这个底层。
问题)
共享同一个
ActorSystem
对象或每次都创建一个新对象意味着什么?这里有哪些最佳实践?一直路过一个
ActorSystem
似乎出奇的笨拙。一些例子给出了
ActorSystem
一个名字:ActorSystem("MySystem")
其他人只是调用ActorSystem()
. 这有什么区别,如果您两次使用相同的名称会怎样?是否
akka-testkit
要求您ActorSystem
与传递给TestKit
构造函数的共享一个公用?