【问题标题】:Cosmos DB failover with MongoDB.Driver library使用 MongoDB.Driver 库的 Cosmos DB 故障转移
【发布时间】:2019-05-21 08:36:41
【问题描述】:

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

在选择服务器 30000 毫秒后发生超时 CompositeServerSelector{ 选择器 = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 } }。集群状态的客户端视图是 { ClusterId : "1", ConnectionMode :“自动”,类型:“ReplicaSet”,状态:“已连接”,服务器:[{ ServerId: "{ ClusterId : 1, EndPoint : "未指定/myCosmosAccount.documents.azure.com:10255" }", 端点:“未指定/myCosmosAccount.documents.azure.com:10255”, 状态:“已连接”,类型:“ReplicaSetOther”,标签:“{ region : North 欧洲 }", WireVersionRange: "[0, 2]" }] }

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

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

是否可以使用这个库,或者我需要切换到使用 Cosmos DB SDK 来改进灾难恢复?

【问题讨论】:

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


    【解决方案1】:

    我在这里找到了解决方案: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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-22
      • 2021-02-18
      • 2010-11-06
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      相关资源
      最近更新 更多