在服务结构中备份参与者的推荐方法

Recommended way to backup actors in service fabric

嗨,我有一些可靠的演员,我想支持他们。 我正在考虑每天进行完整备份,并在状态发生变化时以及可能在每次部署之前进行增量备份。阅读 documentation and example 对我没有帮助,因为正在使用服务。

我在 github 上找到了一个例子:https://github.com/Microsoft/azure-docs/blob/master/articles/service-fabric/service-fabric-reliable-actors-platform.md 但是我对使用远程合同并调用所有演员有一些疑问。这将阻塞 actor,因为它是单线程的。这真的是最佳实践吗?

也许将所有更改转发到事件中心并将其存储在真实数据库中会更好。或者我应该使用会触发备份任务的提醒。

Reliable Actors 抽象是建立在 ActorService 之上的。是 StatefulServiceBase(可靠服务)的实现。正如 Backup and restore Reliable Actors, you can implement a custom ActorService to get access to the same BackupAsync and RestoreAsync API 中所解释的那样,就好像您正在构建可靠的服务一样。因此,您可以按照您的想法对 ActorService 进行编程以定期备份。请注意,当 ActorService 备份时,它会备份驻留在该副本上的所有 Actors。因此,每次 Actor 的状态更改时进行备份可能代价高昂。我建议为您的应用程序确定可接受的恢复点 Objective 并按相关周期进行增量备份。

有关如何构建自定义 ActorService 的更多信息,请参阅 Custom Actor Service 部分。

请注意,在当前版本中,ActorService 不支持增量备份:"The KvsActorStateProvider currently only supports full backup" Backup and Restore Reliable Actors