Миграция с Microsoft.Azure.DocumentDb на Microsoft.Azure.Cosmos для доступа к данным. Не все варианты доступны - PullRequest
0 голосов
/ 08 октября 2019

Я нахожусь в процессе миграции нашей кодовой базы, которая обращается к CosmosDB через Microsoft.Azure.DocumentDB v2.7.0 в подход, использующий Microsoft.Azure.Cosmos v3.2.0. В ходе этого процесса пакет NuGet «Microsoft.Azure.DocumentDB v2.7.0» был заменен на «Microsoft.Azure.Cosmos v3.2.0».

Почти весь код был перенесен для использования компонентов, предоставленных вновый NuGet, как показано ниже.

  • SqlQuerySpec: QueryDefinition
  • DocumentClient: CosmosClient
  • DocumentClientException: CosmosException
  • query.ExecuteNextAsync (): запрос. ReadNextAsync ()

Проблема возникает, когда мы пытаемся настроить свойства соединения, которые мы использовали для класса ConnectionPolicy старого пакета NuGet, как показано ниже.

var policy = new ConnectionPolicy()
{
EnableEndpointDiscovery = true,
EnableReadRequestsFallback = true,
ConnectionMode = connectionMode,
ConnectionProtocol = Protocol.Http,
UseMultipleWriteLocations = useMultipleWriteLocations
};

Может ли кто-нибудьпомогите мне найти, как установить похожие свойства, такие как EnableEndpointDiscovery, EnableReadRequestsFallback, ConnectionProtocol в Microsoft.Azure.Cosmos пространстве имен? Я смог установить регион только с помощью свойства CosmosClientOptions.ApplicationRegion. Разве пакет Microsoft.Azure.Cosmos не предлагает все настройки, которые Microsoft.Azure.DocumentDb использовал для обеспечения? Пожалуйста, руководство.

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Для ConnectionMode, пожалуйста, смотрите ConnectionMode в CosmosClientOptions: https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.cosmos.cosmosclientoptions.connectionmode?view=azure-dotnet#Microsoft_Azure_Cosmos_CosmosClientOptions_ConnectionMode

ConnectionProtocol будет автоматически установлен соответствующим образом.

UseMultipleWriteLocations больше не требуется, поскольку SDK автоматически обнаружит возможности вaccount.

EnableEndpointDiscovery по умолчанию имеет значение true, значение true не имеет значения, устанавливали ли вы его по какой-то конкретной причине? То же самое с EnableReadRequestsFallback.

1 голос
/ 08 октября 2019

Возможно, указанные вами свойства устарели и заменены значениями по умолчанию true. Я не уверен, что есть сценарий использования, в котором вы бы не хотели, чтобы для EnableEndpointDiscovery или EnableReadRequestsFallback было установлено значение true. Есть несколько новых опций в конвейере для следующей версии, которые могут быть актуальны. Примечания см. # 814

Что касается режима подключения, я думаю, что при использовании ConnectionMode.Direct вы используете TCP, а при использовании ConnectionMode.Gateway вы будете использовать протокол на основе Http (s). на предоставленной конечной точке учетной записи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...