了解上游故障时如何处理Akka引用

问题描述

我正在构建一个需要延迟对指向上游发送者的sender引用的响应的应用程序。为了清楚起见,如果演员A向演员B发送消息,则A是B的sender

在A发生故障并由其主管重新启动之后,B持有的sender参考是否仍指向新近重新启动的A演员?

解决方法

是的,重启后ActorRef指向新的 actor实例,该实例被认为属于同一 actor化身(请参见{{3} }。

文档还明确声明了the actor lifecycle section of in the Akka docs

ActorRef的相等与ActorRef对应的意图相匹配 到目标演员的化身。比较了两个演员参考 当他们具有相同的路径并指向同一演员时,它们相等 化身。指向终止的演员的引用不 比较等于指向另一个(重新创建的)actor的引用 用相同的路径。请注意,由 失败仍然意味着它是同一演员的化身,即 ActorRef的使用者看不到重新启动。

因此,是终止角色还是创建另一个实例还是由主管重新启动实例,都会有所不同。