首页 > 解决方案 > 来自 Reliable Actors 的邮箱中的消息是否有状态?

问题描述

每当主节点发生故障时,包括提醒在内的可靠参与者的状态都会恢复。但是,我在邮箱中找不到任何有关邮件的信息。这些消息会发生什么,它们是丢失了还是参与者恢复了这些消息?

我能找到的唯一信息如下:

因为 Actor 服务本身是一个可靠的服务,所以 Reliable Services 的所有应用程序模型、生命周期、打包、部署、升级和扩展概念都以相同的方式应用于 Actor 服务。

我不确定上面的引用是否包括来自演员邮箱的消息。

https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-platform

标签: azure-service-fabricreliable-actors

解决方案


SF Reliable Actors 不使用与 Akka 相同的邮箱消息传递方法。

Akka 使用TELL方法,其中消息被发送给参与者并存储在邮箱中进行处理,一旦处理完成,参与者就会向调用者发送一条带有答案的消息。

SF 采用ASK方式,调用者一直在等待应答,因此没有邮箱,处理将根据从 actor 获取的锁定顺序进行,如果 actor 服务失败,调用和锁定将被丢弃。

因为对 Actor 的调用和重试由调用者管理,使用 ActorProxy,它会重新发送调用,并且会到达一个新的服务实例\副本,从而获得比以前新的优先级顺序。


推荐阅读