Изменение канала в многорегиональной базе данных Azure Cosmos DB

#azure-cosmosdb #azure-cosmosdb-sqlapi

#azure-cosmosdb #azure-cosmosdb-sqlapi

Вопрос:

Я использую многорегиональную учетную запись Cosmos DB (запись в один регион). В настоящее время она включена в Восточной и западной частях США. Регион записи — Запад США.

Прослушиватели каналов изменений развернуты как в Восточной, так и в западной части США. Я хотел понять, могу ли я указать, что слушатели, развернутые в восточной части США, считывают канал изменений с востока США, а слушатели на Западе США считывают канал изменений с запада США. Или все слушатели всегда будут считывать канал изменений из региона записи?

Ответ №1:

Вы, безусловно, можете заставить своих слушателей читать из ближайшего региона, что должно улучшить задержку. Вы можете использовать атрибут PreferredLocations для настройки этого:

 var localPolicy = new ConnectionPolicy();
localPolicy.PreferredLocations.Add("East US");

// Builder initialization
.WithFeedCollection(new DocumentCollectionInfo()
{
    DatabaseName = DbName,
    Uri = new Uri(uri),
    CollectionName = feedCollection,
    MasterKey = key,
    ConnectionPolicy = localPolicy
})
.BuildAsync();
  

Комментарии:

1. Спасибо за ответ. Один из последующих вопросов здесь: нужно ли мне также устанавливать аналогичную политику для коллекции аренды, или я всегда должен использовать регион записи для коллекции аренды. Я использую библиотеку change feed processor, и, насколько я понимаю, в коллекции аренды будут выполняться операции чтения и записи, в то время как будут выполняться только чтения из коллекции каналов.

2. Коллекция аренды может находиться в другой отдельной учетной записи, и вы также можете настроить для нее предпочтительные местоположения, которые могут быть одинаковыми или нет. Имейте в виду, что, поскольку сбор арендной платы будет выполнять запись и чтение в одной основной учетной записи, у вас нет особого выбора, он всегда относится к региону записи. Однако для нескольких основных учетных записей это обеспечивает большую гибкость, поскольку может выполнять запись в любой регион.