我可以在春季对 Akka 主管演员使用单例范围吗?



我有一个主管Actor,负责限制对许多上游系统的请求。此主管演员创建具有原型范围的子演员,这些子演员执行发送请求的实际繁重工作。

我只想创建我的主管Actor的单个实例,我知道建议给AkkaActor一个原型范围,但是在这种情况下,我可以使用单例范围的Actor来确保所有请求都使用相同的主管吗?

啊,在回答你的另一个问题之前没有看到那个。

应该使用原型范围的原因是,Akka 将在失败时重新启动 actor。如果您有单例作用域,这可能会导致问题。但是,Akka 不会随机创建您的演员的新实例。当你使用actorOf创建一个Actor时,每次都会创建一个actor,但只有一个Actor(当然,除非你使用路由器)。因此,只要您正确创建了Actor,您就只有该actor的一个实例,并且您从actorof返回的ActorRef将始终指向Actor的实例。发生异常时,参与者将被停止并启动一个新实例,actorRef 仍将指向该参与者。

最新更新