0

我们计划将 Service Fabric Actor 模型用于我们的一项用户服务。我们有成千上万的用户,他们有自己的个人资料数据。通过阅读材料,Service Fabric Actor 模型通过其 Service Fabric 集群维护其状态。我无法清楚地了解灾难恢复/计划关闭方案/离线数据访问。在这种情况下,是否需要将数据保存在这些参与者服务之外?

如果我们决定在某一天关闭所有 Service Fabric 集群,并在几天后重新激活,那么数据会发生什么情况?

4

2 回答 2

4

在 Azure 的 SF 群集中,数据存储在临时驱动器上。无法保证关闭的节点保留临时驱动器。所以同时关闭所有节点会导致数据丢失。

为避免这种情况,您应该定期创建(参与者)服务的备份。例如通过使用这个Nuget 包。将生成的文件存储在集群之外。

集群技术将有助于在节点故障期间保护您的数据安全,例如在一个 5 节点集群中,剩余的 4 个健康节点可以接管故障节点的工作。数据以冗余方式存储,因此您的服务保持正常运行。相同的功能还允许滚动升级服务/参与者。

是一篇关于 DR 的文章。

于 2017-07-04T17:39:59.743 回答
0

我在服务结构中实现了一个大型企业应用程序,使用角色模型来管理订单。在选择数据备份和恢复策略时可能有一些帮助

  1. 由于包https://github.com/loekd/ServiceFabric.BackupRestore尚未完全成熟,您需要处理一些场景。例如:在部署期间,您的参与者分区移动到其他节点,如果您尝试进行增量备份,它将因 FabricMissingFullBackupException 而失败,因为在成为主要节点后您没有进行完整备份,并且需要手动修复该问题。我们如何添加重试模式来解决该问题不在此问题的范围内。
  2. 增量备份并不总是在恢复过程中恢复。
  3. 即使您正确设置了 logTrunctationIntervalInMinutes,有时增量备份创建也会失败。
  4. 一些开发人员错误地删除了您将丢失所有数据的服务或应用程序。
  5. 如果您的系统严重依赖于我们的情况下的提醒。在恢复期间,所有提醒都会重置。

好的解决方案:如果您想使用 Power BI 进行某些分析,请使用您自己的实现覆盖默认的 KvsActorStateProvider,该实现将数据存储在 DocumentDB、MongoDB、Cassandra 或 Azure SQL 中。

于 2017-10-24T21:02:59.393 回答