将消息发送到不同项目中的现有Actor

时间:2015-05-13 03:42:47

标签: scala akka

我想知道是否可以从另一个项目向现有的Actor发送消息?

现有演员&允许的消息:

org.w.h.i

然而,我目前的项目与上述不同,例如ActorSelection

假设我知道actorSystem名称,url以及构建org.x.y.ExistActor org.x.y.ExistActor所需的所有内容,那么是否可以发送消息并获得结果?

请注意for each suit for each value load "card_" + suit + value + ".jpg" 允许的消息及其本身都是私有的,如果我发送消息,我会制作允许消息的本地副本。

2 个答案:

答案 0 :(得分:1)

是的,如果两个系统都设置为远程处理,您可以向任何知道使用ActorSelection的路径的演员发送消息。

但是,除非您的远程actor系统能够发送您的actor将响应的消息,否则解决它(如您的示例中)将毫无意义。

答案 1 :(得分:1)

首先,应该在两个JVM上启用Akka Remoting。成功获得ActorSelection后,您可以向该演员发送消息。演员是否被定义为private class并不重要。重要的是它的运行和可访问性。

现在问题是演员是否会接受你发送的消息,以及你是否可以构建这些消息,因为它们在你的情况下是私有的。

这一切都取决于为Akka Remoting配置的序列化程序。有关配置选项,请参阅these docs,并检查远程项目是否使用不依赖于Java序列化或任何特定于类版本的序列化的序列化程序。

默认情况下,Akka Remoting使用Protocol Buffers,这样您就可以构建完全相同类型和形状的消息并成功发送。