我认为使用像Play这样的无状态Web框架的一个优点是负载均衡器可以向任何节点发送请求,而不关心哪个节点接收请求。我担心Akka整合如何影响无国籍状态。通过使用内置系统生成一个actor,我是不是可能创建超出单个请求的状态并且绑定到应用程序的单个实例?
我认为想要生成一个超出单个请求的actor并且可以从多个应用程序实例访问它是相当普遍的。是否有共同的模式来实现这一目标?是否有必要使用远程actor系统来产生这个actor,或者可以以某种方式使用本地内置播放系统?
答案 0 :(得分:1)
在最简单的设置中,您可以让有状态的actor在已知的主机名/端口和已知的actor路径上运行。例如,它可以位于“akka.tcp://actorSystemName@10.0.0.1:2552 / user / statefulActor”。然后在你的每个游戏系统中,look up this actor和你的无国籍演员都可以向它发送消息。有状态的演员可以在你的一个演员系统中运行。您不需要创建单独的actor系统。
简单设置的问题在于它是单点故障。这对您来说可能是也可能不是问题。有关更强大的方法,请参阅Cluster Singleton Pattern。