2

我想将一个序列化的 Actor 连同它的状态一起传递给另一个 Actor(这样它就可以通过网络迁移)。是否有任何 API 或者应该从头开始实现?

4

1 回答 1

2

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

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

此外,ActorRefs它们是可序列化的,因此您当然可以将 an 传递ActorRef给远程节点上的另一个参与者,然后将消息发送回您提供的 ref,从而使消息返回到起始节点。

还有一件事要考虑。您实际上不能将Actor实例传递给另一个参与者,您实际上可以传递的是ActorRef,它是一个轻量级句柄,用于回调Actorref 所代表的实例。如果您确实想将参与者实例及其状态迁移到另一个节点,请阅读更多关于编程远程部署功能的内容。如果您只想在不同节点中运行的两个actor实例之间来回通信,那么要么使用ask (?)获取请求/响应行为(使用sender接收actor中的var发送回调用actor,或者传递发送ActorRef(通过context.self)沿着 viatell (!)然后在接收参与者中使用该 ref 发送回消息。

于 2013-04-28T14:57:32.143 回答