使用MongoDB.Driver库进行Cosmos DB故障转移

时间:2019-05-21 08:36:41

标签: mongodb azure-cosmosdb azure-cosmosdb-mongoapi

我有一个使用MongoDB.Driver库(2.7.3)连接到Azure上的CosmosDB的应用程序。 Cosmos帐户设置为复制到另一个区域中的辅助帐户以进行灾难恢复。我遇到的一个问题是,当我们对Cosmos帐户进行故障转移时,我们将失去连接并在写入数据时收到以下错误:

  

使用以下命令选择服务器30000ms之后发生超时   CompositeServerSelector {选择器=   MongoDB.Driver.MongoClient + AreSessionsSupportedServerSelector,   LatencyLimitingServerSelector {AllowedLatencyRange = 00:00:00.0150000   }。群集状态的客户端视图为{ClusterId:“ 1”,ConnectionMode   :“自动”,类型:“ ReplicaSet”,状态:“已连接”,服务器:[{   ServerId:“ {ClusterId:1,端点:   “未指定/myCosmosAccount.documents.azure.com:10255”}“,   端点:“未指定/myCosmosAccount.documents.azure.com:10255”,   状态:“已连接”,类型:“ ReplicaSetOther”,标签:“ {地区:北   欧洲}“,WireVersionRange:” [0,2]“}]}

我知道可以在MongoDB连接字符串中指定多个服务器,但是我不清楚如何使用Cosmos DB(该帐户仅具有一个端点)来实现此目的。我当前的连接字符串是这样:

mongodb://myCosmosAccount:Key@myCosmosAccount.documents.azure.com:10255/myCosmosDatabase?ssl=true

可以使用此库吗?还是需要切换到使用Cosmos DB SDK来提高灾难恢复能力?

1 个答案:

答案 0 :(得分:0)

我在这里找到了解决方案:https://social.msdn.microsoft.com/Forums/azure/en-US/8cdf09af-ff75-4c9b-8eb4-179464e04018/azure-cosmos-db-breaks-during-manual-failover?forum=azurecosmosdb

我需要在连接字符串的末尾添加:replicaSet=globaldb,所以现在看起来像这样:

mongodb://myCosmosAccount:Key@myCosmosAccount.documents.azure.com:10255/myCosmosDatabase?ssl=true&replicaSet=globaldb
相关问题