Отказоустойчивая база данных Cosmos с библиотекой MongoDB.Driver - PullRequest
0 голосов
/ 21 мая 2019

У меня есть приложение, которое использует библиотеку MongoDB.Driver (2.7.3) для подключения к CosmosDB в Azure. Учетная запись Cosmos настроена для репликации на вторичное устройство в другом регионе для аварийного восстановления. Проблема, с которой я сталкиваюсь, заключается в том, что при сбое учетной записи Cosmos мы теряем связь и получаем следующую ошибку при записи данных:

Тайм-аут произошел после 30000 мс при выборе сервера с помощью CompositeServerSelector {Selectors = MongoDB.Driver.MongoClient + AreSessionsSupportedServerSelector, LatencyLimitingServerSelector {AllowedLatencyRange = 00: 00: 00.0150000 }}. Клиентское представление состояния кластера: {ClusterId: "1", ConnectionMode : «Автоматически», Тип: «ReplicaSet», Состояние: «Подключено», Серверы: [{ ServerId: "{ClusterId: 1, EndPoint: "Unspecified / 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 голосов
/ 21 мая 2019

Я нашел решение для этого здесь: 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
...