如何观看Akka集群中远程演员的死亡?

如何观看Akka集群中远程演员的死亡?,akka,akka-cluster,Akka,Akka Cluster,我使用Akka sharding cluster在多个节点上分配工作负载,并使用context.watchWithworker检测子参与者的意外终止 如果通过集群分片将子参与者分配到与父节点不同的节点上,并且如果子节点关闭,则父参与者将不会收到子参与者的死亡通知 我知道我可以添加自己的逻辑来跟踪儿童演员的生命周期。 尽管如此,我还是想知道,Akka是否对远程节点上的这个案例中的子参与者的死亡监视提供了本机支持?这通常不是真的,如果该参与者停止,监视另一个节点上的ActorRef将给您一条终止消息

我使用Akka sharding cluster在多个节点上分配工作负载,并使用context.watchWithworker检测子参与者的意外终止

如果通过集群分片将子参与者分配到与父节点不同的节点上,并且如果子节点关闭,则父参与者将不会收到子参与者的死亡通知

我知道我可以添加自己的逻辑来跟踪儿童演员的生命周期。
尽管如此,我还是想知道,Akka是否对远程节点上的这个案例中的子参与者的死亡监视提供了本机支持?

这通常不是真的,如果该参与者停止,监视另一个节点上的ActorRef将给您一条终止消息

但是,当使用群集分片时,您实际上没有访问远程ActorRef的权限,而是使用分片作为代理,根据消息中的字段传递消息。切分可以决定在任何时候重新平衡集群中的切分,例如,当新节点加入或节点离开集群时,在这种情况下,可以停止切分的参与者,并在下一条消息出现时在另一个节点上启动


如果观看“远程演员”的动机是为了获得某种形式的交付保证,那么我们添加了一个新的工具,名为Akka 2.6.4,该工具最近发布,这可能会很有趣。您可以在本PR中的分布式工作负载示例中看到它的使用

谢谢!我的问题不太正确。通过集群分片创建工作者角色时,没有父子关系。因此,要知道通过集群切分创建的工作者参与者是否处于活动状态,解决方案包括工作者参与者将其ActorRef发送回死亡观察,或者使用心跳ping工作者参与者以进行活动性检查。我说得对吗?这是一种方法,但最好退一步,想想看请求者的孩子是否是实现这一目标的正确方法。