Playframework 2.0 PlayFramework——在另一个本地Actor系统中查找演员

Playframework 2.0 PlayFramework——在另一个本地Actor系统中查找演员,playframework-2.0,akka,Playframework 2.0,Akka,我有一个play应用程序,其中一些演员位于另一个Actor系统中。我试图从play应用程序访问ActorSystem中的演员(基本上我将他们连接到RESTAPI,即当play应用程序收到帖子时向他们发送消息) 我在一开始就创建了这个ActorSystem,我可以从日志中确认它确实在启动 让我们假设在这个单独的系统中,参与者的路径是akka://my-system/user/my-actor. 我如何向那个演员传达信息 我试过: Akka.system.actorSelection("akka:/

我有一个play应用程序,其中一些演员位于另一个Actor系统中。我试图从play应用程序访问ActorSystem中的演员(基本上我将他们连接到RESTAPI,即当play应用程序收到帖子时向他们发送消息)

我在一开始就创建了这个ActorSystem,我可以从日志中确认它确实在启动

让我们假设在这个单独的系统中,参与者的路径是akka://my-system/user/my-actor. 我如何向那个演员传达信息

我试过:

Akka.system.actorSelection("akka://my-system/user/my-actor") ! SomeMessage(...)
但这不起作用。在日志中,我可以看到以下错误(启用死信日志记录):

为什么它不起作用??我怎样才能让它工作呢

非常感谢您的帮助

如果Akka.system是“我的系统”参与者系统,那么您应该能够跳过akka://my-system“直接为“/user/my actor”配角并开始”


如果Akka.system是另一个actor系统,那么您可以使用远程处理并指定另一个系统的完整地址,如“Akka”。tcp://my-system@我的主持人:我的端口/用户/我的演员。

谢谢比约恩!但这很奇怪。那么,你能建议一种不涉及远程处理的方法来实现我的想法吗?重点是在同一台机器上部署一个“核心”系统,然后是一个轻量级的“控制”系统(即作为单独的Actor系统)。我的观点是:为什么仅仅因为它是一个不同的actorsystem就强迫我对localhost进行远程处理……Akka中没有actor系统的全局注册表,所以无法按名称查找我的系统。另一方面,如果您将my system actor系统公开给第一个actor系统,我认为您可以执行mySystem.actorSelection(“/user/my actor”)。好的,我想这是有道理的。从你的答案和akka文档中的字里行间可以看出,在同一台主机上部署两个不同的actorsystem是没有意义的。可能这个用例不受支持的原因是因为我试图映射一个actorsystem来进行处理,而另一个单独的系统用于接口。对我来说,这是一个显而易见的用例。显然,akka团队没有想到这一点,或者说它的架构师有更好的方法来完成我正在尝试的工作。无论如何,我接受你的回答。希望一些akka开发人员会看一看,并给我他们的2CT…部署多参与者系统是非常有意义的,如果你将它们视为多参与者系统,唯一“透明”的方法是不要将它们视为讨论远程处理的系统。顺便说一句,我是阿卡开发人员;)
Message ... from Actor[akka://application/deadLetters] to Actor[akka://application/deadLetters] was not delivered