gpt4 book ai didi

c# - 如何从现有备份恢复 Reliable Service 状态?

转载 作者:行者123 更新时间:2023-11-30 12:41:04 25 4
gpt4 key购买 nike

我有一个有状态服务,其备份逻辑根据 the corresponding documentation 实现

就像这样:

protected override async Task RunAsync(CancellationToken cancellationToken)
{
// ...

while (true)
{
cancellationToken.ThrowIfCancellationRequested();
BackupDescription myBackupDescription = new BackupDescription(BackupOption.Full, this.BackupCallbackAsync);
await this.BackupAsync(myBackupDescription);

// ...

await Task.Delay(TimeSpan.FromSeconds(1), cancellationToken);
}
}

private async Task<bool> BackupCallbackAsync(BackupInfo backupInfo, CancellationToken cancellationToken)
{
var backupId = Guid.NewGuid();
// backup files copied to external storage here ...
return true;
}

文档仅建议一种恢复备份的方法 - 使用 OnDataLossAsync 方法。但我不能引发对这种方法的调用。

所以,问题是:如果数据全部丢失,如何从备份中恢复服务状态?

例如,所有 Service Fabric 群集节点均已被破坏。我唯一拥有的就是我的备份。重新部署后我应该做什么来恢复我的服务状态?

我检查了 Service Fabric 群集管理器的 DataLog 目录,但数据格式与备份相比似乎不同。

最佳答案

可以使用类似以下代码的服务触发数据丢失:

Connect-ServiceFabricCluster
$s = "fabric:/WebReferenceApplication/InventoryService"
$p = Get-ServiceFabricApplication | Get-ServiceFabricService -ServiceName $s | Get-ServiceFabricPartition | Select -First 1
$p | Invoke-ServiceFabricPartitionDataLoss -DataLossMode FullDataLoss -ServiceName $s

有一个示例展示了 web reference sample 中备份和恢复的工作原理。 ,具体代码为here .

备份和恢复的完整文档是 here .

关于c# - 如何从现有备份恢复 Reliable Service 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com