有没有办法在服务结构中备份单个ReliableCollection?

时间:2019-06-18 13:00:58

标签: azure-service-fabric service-fabric-stateful

我在StatefulService中定义了以下三个可靠的集合:

this.dataCount = 
      await StateManager.GetOrAddAsync<IReliableDictionary<string, int>>("count");

this.dataDictionary1 = 
     await StateManager
          .GetOrAddAsync<IReliableDictionary<string, ResourceElement>>
          ("data1");

this.dataDictionary2 = 
     await StateManager
          .GetOrAddAsync<IReliableDictionary<string, ResourceElement>>
          ("data2");

现在,我想将集合 data2 (其内容)移动到单独的StatefulService,并且我不确定如何继续。

理想情况下,我正在寻找一种机制,可以将 data2 备份到文件中(我不介意是否必须向服务中添加方法),然后继续备份从该文件转移到其他服务。

有这样的东西吗?

1 个答案:

答案 0 :(得分:0)

备份在服务分区级别工作。创建单个集合的备份的唯一方法是拥有一个带状态的服务,该服务具有1个仅保存该集合的分区。

您可以做的是将旧服务(服务1)的备份还原到新服务(服务2),而您仅为将数据从 data2 中移出而创建>收集到另一个服务(服务3)。之后,您删除服务2并继续运行服务3。