我有一个主管Actor,负责限制对多个上游系统的请求。这个主管演员创建了具有原型范围的子actor,它实际上是发送请求的繁重工具。
我想创建一个我的主管演员的单个实例,我知道建议给Akka Actors一个原型范围但是在这种情况下我可以使用单例范围的Actor来确保所有请求都使用相同的主管吗? / p>
答案 0 :(得分:1)
啊,在回答你的另一个问题之前没有看到那个。
应该使用原型范围的原因是Akka将在失败时重启actor。如果你有单例范围,这可能会导致问题。但是,Akka不会随机创建您的actor的新实例。当你使用actorOf创建一个actor时,每次都会创建一个actor,但是只有一个actor(当然除非你使用路由器)。因此,只要你正确地创建你的actor,你就只有一个这个actor的实例,而你从actorOf返回的ActorRef将始终指向你的actor的一个实例。当异常发生时,actor将被停止并启动一个新实例,actorRef仍将指向该actor。