Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以在春季为Akka主管演员使用singleton scope吗?_Java_Spring_Scope_Akka - Fatal编程技术网

Java 我可以在春季为Akka主管演员使用singleton scope吗?

Java 我可以在春季为Akka主管演员使用singleton scope吗?,java,spring,scope,akka,Java,Spring,Scope,Akka,我有一个主管参与者,负责限制对多个上游系统的请求。这个主管角色创建了一个原型范围的子角色,这个原型负责发送请求的实际繁重工作 我只想创建我的supervisor actor的一个实例,我知道建议给Akka Actors一个原型范围,但是在这种情况下,我可以使用一个单一范围的actor来确保所有请求都使用同一个supervisor吗?啊,在回答您的另一个问题之前没有看到这个 应该使用原型范围的原因是Akka将在出现故障时重新启动参与者。如果您有单例作用域,这可能会导致问题。但是,Akka不会随机创

我有一个主管参与者,负责限制对多个上游系统的请求。这个主管角色创建了一个原型范围的子角色,这个原型负责发送请求的实际繁重工作


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

啊,在回答您的另一个问题之前没有看到这个


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

谢谢@pushy,因此,如果我使用ActorOf语法创建了我的Supervisor Actor,那么它是否标记为prototype或singleton并不重要,因为将只创建一个Actor,并且ActorRef的后续使用仅包含对Actor的引用??这是正确的吗?我应该更详细一些。我正在使用Akka的TimerBasedThrottler类在我的应用程序中实现节流。此类允许您在创建参与者时指定限制速率。然后,新的ActorRef可以指定消息可以转发到的子Actor。消息的处理速度不会超过在创建第一个参与者期间指定的限制速率……这就是为什么我想确保我只有一个参与者实例,它定义了限制速率hey@niloc,这应该可以正常工作。就像我说的,你需要确保这个演员只需要调用一次actorOf,然后只有一个。当该actor遇到异常时,它将重新启动,这将产生一个新实例,但这对您的情况没有影响。@pushy“因此,只要您正确创建了actor,您将只拥有该actor的一个实例,并且您从actorOf返回的ActorRef将始终指向您的actor的一个实例。”,我没有使用路由器…如果我从应用程序的不同位置调用actorOf()会发生什么。他们都有相同的演员实例吗?或者每次创建新的参与者时,因为范围设置为原型?