根据您的代码,所需要的只是配置更改。您需要在配置中使用类似的内容来设置远程处理:
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
remote {
enabled-transports = ["akka.remote.netty.tcp"]
netty.tcp {
hostname = "127.0.0.1"
port = 2552
}
}
}
然后你需要告诉 Akka 你的哪些actors将在远程节点上创建:
akka {
actor {
deployment {
/sampleActor {
remote = "akka.tcp://sampleActorSystem@127.0.0.1:2553"
}
}
}
}
有关更多信息,您可以查找出色的文档。我链接了 2.2.1 版本的文档,如果您使用不同的版本,请务必查看该版本的文档。版本之间往往会发生变化,虽然旧版本中的东西仍然可以在新版本中使用(尽管它们可能已被弃用),但反过来显然是一个问题。
你会注意到我说“取决于你的代码”。我的意思是,您将发送到远程节点的所有消息都需要是可序列化的,并且您不要在演员中使用任何静态成员。
如果您想要更多的灵活性,您可以查看全新的集群支持。这将为您提供一个很好的灵活、动态的点对点系统,您可以根据需要向上和向下扩展。您可能需要为此进行一些细微的代码更改。
希望有帮助。