scala - akka 支持高阶 actor 吗?

标签 scala akka actor

我想将一个序列化的 Actor 及其状态传递给另一个 Actor(以便它可以通过网络迁移)。是否有任何 API 可以实现这一点,还是应该从头开始实现?

最佳答案

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

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

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

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

关于scala - akka 支持高阶 actor 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261372/

相关文章:

scala - 将 HTTP/REST 请求转发到 Spray 中的另一个 REST 服务器

akka - 需要 DB 调用的 CQRS 命令验证

java - 在未来的 akka java 中无限期地等待 Actor 的回应

scala - 可以使用 actor 'threadless' 在 Scala 中制作生产者/消费者对象(没有接收...)?

java - 使用 Scala 中的 vararg 参数覆盖 Java 方法时出现 AbstractMethodError

arrays - 尝试在 Scala 中声明特定大小的数组

scala - 为什么值不是 ArrayBuffer[Any] 中类的成员

Scala 范围 : argument required() based on one or more other arguments

c# - Akka.net 消息不变性

actor - 服务结构参与者模型是否允许节流?如果没有,如何制作一个?