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

Azure 未指定Cosmos DB故障转移读取位置时,azure,azure-cosmosdb,azure-sdk-.net,Azure,Azure Cosmosdb,Azure Sdk .net,假设我在三个区域a、B和C中设置了一个Cosmos DB,其中a是写入区域。我还关闭了自动故障切换 在客户端中使用.NET SDK时,如果我设置了ConnectionPolicy.EnableEndpointDiscovery=true,但没有为ConnectionPolicy.PreferredLocations属性指定任何内容,那么如果区域a发生中断,从客户端进行的读取(和写入)将发生什么情况 另外,假设我指定了ConnectionPolicy.PreferredLocations={A,B

假设我在三个区域a、B和C中设置了一个Cosmos DB,其中a是写入区域。我还关闭了自动故障切换

在客户端中使用.NET SDK时,如果我设置了
ConnectionPolicy.EnableEndpointDiscovery=true
,但没有为
ConnectionPolicy.PreferredLocations
属性指定任何内容,那么如果区域a发生中断,从客户端进行的读取(和写入)将发生什么情况

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


我找不到任何描述和解释这些结果的内容。

如果启用了
EnableEndpointDiscovery
,写入操作将自动路由到新的主区域(如果未启用,则在主区域故障期间写入操作将失败)。如果您有
首选位置
,读取将按首选顺序路由到区域。如果未指定此选项,则当主设备不可用时,读取将失败。换句话说,在发生区域故障时,必须使两者都具有高可用性

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


此处还有一些其他详细信息:

如果启用了
EnableEndpointDiscovery
,写入操作将自动路由到新的主区域(如果未启用,则在主区域出现故障时写入操作将失败)。如果您有
首选位置
,读取将按首选顺序路由到区域。如果未指定此选项,则当主设备不可用时,读取将失败。换句话说,在发生区域故障时,必须使两者都具有高可用性

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

以下是一些额外的细节: