在Service Fabric中备份Actor的推荐方法是什么?

3

你好,我有一些可靠的演员需要备份。 我考虑每天进行完全备份,一旦状态发生变化就进行增量备份,可能还要在每次部署之前进行备份。阅读文档示例没有帮助,因为它们使用服务。

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

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

我认为应该调用Actor服务而不是Actor本身。也许我会创建一个带有while(true)的任务来执行备份工作。 - Thieme
1个回答

1

可靠的Actor抽象是建立在ActorService之上的,它是StatefulServiceBase(可靠服务)的实现。如备份和恢复可靠的Actor中所解释的那样,您可以实现自定义ActorService以获得访问与构建可靠服务时相同的BackupAsyncRestoreAsync API。因此,您可以编写ActorService以定期备份,就像您想的那样。请注意,当ActorService备份时,它会备份驻留在该副本上的所有Actor。因此,每次Actor状态更改时备份可能很昂贵。我建议为您的应用程序决定可接受的恢复点目标,并根据相关周期性逐步备份。

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

请注意,在当前版本中,ActorService不支持增量备份:“KvsActorStateProvider目前仅支持完整备份” 备份和还原可靠的Actor


备份现在正常工作了。谢谢!我有一些文件:restore.dat,new/ActorStateStore,new/ActorStateStore.pat,new/edb00000002.log。我正在尝试恢复这些文件,但没有成功:http://stackoverflow.com/questions/41360251/start-servicefabricpartitiondataloss-operation-timed-out - Thieme

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接