我们计划将Service Fabric actor模型用于我们的一个用户服务。我们有数千名用户,他们有自己的个人资料数据。到目前为止,服务结构演员模型通过其服务结构集群维护其状态。我无法在灾难恢复/计划关机方案/离线数据访问中获得清晰的图像。在这种情况下,是否需要将数据保留在这些actor服务的一边?
如果我们决定有一天关闭所有服务架构集群,并希望几天后重新启动,那么数据会发生什么?
答案 0 :(得分:4)
在Azure中的SF群集中,数据存储在临时驱动器上。没有guarantee关闭的节点会保留临时驱动器。因此,同时关闭所有节点将导致数据丢失。
为避免这种情况,您应定期创建(Actor)服务的备份。例如,使用this Nuget包。将生成的文件存储在群集之外。
群集技术有助于在节点故障期间保护数据安全,例如:在5节点集群中,剩余4个健康节点可以接管故障节点的工作。数据以冗余方式存储,因此您的服务仍然可以运行。相同的功能还允许滚动升级服务/演员。
Here's一篇关于DR的文章。
答案 1 :(得分:0)
我使用actor模型在服务结构中实现了一个大型企业应用程序来管理订单。 在选择数据备份和恢复策略时,几乎没有什么可以帮助
良好的解决方案:使用您自己的实现覆盖默认的KvsActorStateProvider,如果您想将功能BI用于某些分析,则将数据存储在DocumentDB,MongoDB,Cassandra或Azure SQL中。