akka是否支持高阶演员?

时间:2013-04-28 09:15:14

标签: scala akka actor

我想将序列化的Actor及其状态传递给另一个Actor(因此可以通过网络迁移)。是否有任何API或应该从头开始实施?

1 个答案:

答案 0 :(得分:2)

我相信Akka中的Remoting支持这种类型的功能。查看此链接,特别是有关程序化远程部署的部分,看看您是否正在寻找:

http://doc.akka.io/docs/akka/2.1.2/java/remoting.html

此外,ActorRefs是可序列化的,因此您当然可以将ActorRef传递给远程节点上的另一个actor,然后将消息发送回您提供的引用,从而导致消息返回到起始节点。

还有一件事需要考虑。您实际上无法将Actor实例传递给另一个actor,您实际可以传递的只是ActorRef,它是一个轻量级句柄,用于回调ref表示的Actor实例。如果您确实想要将actor实例及其状态迁移到另一个节点,请阅读Programmatic Remote Deployment功能。如果您只想在不同节点中运行的两个actor实例之间来回通信,则使用ask (?)获取请求/响应行为(使用接收actor中的sender var发送回调用actor,或者通过ActorRef传递发送context.self(通过tell (!)),然后在接收actor中使用该ref发回消息。

相关问题