我有以下代码:
def main(args: Array[String]): Unit = {
val cluster = Cluster.builder()
.addContactPoint("localhost")
.withPort(9042)
.build()
val session = cluster.connect()
try {
session.execute(s"CREATE KEYSPACE demoks WITH REPLICATION = {'class':'SimpleStrategy', 'replication_factor':1}")
} catch {
case _: AlreadyExistsException =>
}
session.execute(s"USE demoks")
session.execute("DROP table IF EXISTS demo")
session.execute( """
| CREATE TABLE IF NOT EXISTS demo (
| id text,
| data1 map<text, text>,
| data2 map<text, text>,
| PRIMARY KEY (id)
| ) WITH
| compaction = {'class': 'LeveledCompactionStrategy'}
| AND
| compression …Run Code Online (Sandbox Code Playgroud) 我有一个有状态服务,根据相应的文档实现了备份逻辑
就像这样:
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;
}
Run Code Online (Sandbox Code Playgroud)
文档只建议了一种恢复备份的OnDataLossAsync方法-方法。但是我不能激发对这个方法的调用。
所以,问题是:如果数据完全丢失,我如何从备份中恢复服务状态?
例如,所有 Service Fabric 集群节点都已被销毁。我唯一拥有的是我的备份。重新部署后我应该怎么做才能恢复我的服务状态?
我检查Data和Log服务织物集群管理器的目录,但数据格式似乎是比较不同的备份。