我正在使用最新的Azure.Data.Tables
nuget 包版本12.3.0
连接到 ASP.NET Core C# 应用程序中的 Azure 表存储。
如果主要区域发生故障,我的应用程序需要故障转移到次要区域进行读取。
目前的设置TableServiceClient
是在 Startup.cs 中完成的,如下所示:
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton(new TableServiceClient(new Uri("PrimaryRegionConnectionURL"), new DefaultAzureCredential()));
}
如何TableServiceClient
使用指向次要区域的实例更新当前实例?是否有更好的方法来实现此故障转移?
澄清一下:我知道客户端不支持故障转移,并且团队已经创建了一张票以在将来查看此功能。我意识到我需要一个新的TableServiceClient
.
我只是不确定如何将启动时创建的替换为失败时指向辅助实例的新实例。
这是消耗TableServiceClient
public class TableRepository : ITableStorageRepository
{
readonly TableServiceClient _serviceClient;
public TableRepository(TableServiceClient serviceClient)
{
_serviceClient = serviceClient;
}
public async Task<ICollection<T>> GetPartitionEntities<T>(string partitionKey, string tableName)
where T : class, ITableEntity, new()
{
var listOfEntities = new List<T>();
var tableClient = _serviceClient.GetTableClient(tableName);
var queryResults = tableClient.QueryAsync<T>(filter => filter.PartitionKey == partitionKey);
await foreach (var row in queryResults)
{
listOfEntities.Add(row);
}
return listOfEntities;
}
}