未指定时,Cosmos DB故障转移读取位置

时间:2018-02-06 20:46:29

标签: azure azure-cosmosdb azure-sdk-.net

假设我在三个区域A,B和C中设置了Cosmos DB,其中A是写区域。此外,我还自动故障转移关闭

在客户端中使用.NET SDK时,如果我设置ConnectionPolicy.EnableEndpointDiscovery = trueConnectionPolicy.PreferredLocations属性指定任何内容,那么读取会发生什么(和如果区域A有中断,那么从客户端写道?

另外,假设我指定ConnectionPolicy.PreferredLocations = {A, B}并且这两个区域都有中断,那么会发生什么?

我找不到任何documentation来描述和解释这些scenarios的结果。

1 个答案:

答案 0 :(得分:1)

如果启用了EnableEndpointDiscovery,写入将自动路由到新的主要区域(如果没有,它们将在主要区域失败期间失败)。如果您有PreferredLocations,则会按照首选顺序将读取路由到这些区域。如果未指定,则在主服务器不可用时读取将失败。换句话说,在区域性故障的情况下,必须使两者都具有高可用性。

如果您有PreferredLocations = {A, B}并且两个区域都失败,则在服务重新联机之前,读取将不可用。通常,这种情况不太可能,因为它涉及多个区域同时失败。

此处提供了一些其他详细信息:https://docs.microsoft.com/en-us/azure/cosmos-db/regional-failover