Сведения о кэше роли для кэша Azure

Важно!

Корпорация Майкрософт рекомендует всем новым разработкам использовать кэш Redis для Azure. Текущую документацию и рекомендации по выбору предложения кэша Azure см. в статье о том, какое предложение кэша Azure подходит для меня?

In-Role Cache поддерживает возможность размещения служб кэширования в ролях Azure. В этой модели кэш входит в состав облачной службы. Для размещения кэша In-Role выбрана одна роль в облачной службе. Выполняющиеся экземпляры этой роли присоединяют ресурсы памяти для формирования кластера кэша. Частный кластер кэша доступен только ролям в рамках одного развертывания. Существует две основные топологии развертывания для кэша In-Role: совместное и выделенное. Совместно размещенные роли также вмещают другой код приложений и службы без кэша. Выделенные роли — это рабочие роли, которые используются только для кэширования. В следующих разделах более подробно рассматриваются эти топологии кэширования.

Пошаговое руководство по использованию кэша In-Role на основе ролей см. в статье "Использование кэша In-Role Azure". Примеры, доступные для скачивания, см. в примерах кэша In-Role Azure.

Основные понятия кэша In-Role

В этом разделе представлен обзор трех ключевых понятий, связанных с In-Role кэшем на основе ролей.

  1. Кластер кэша

  2. Именованные кэши

  3. Клиенты кэша

Кластер кэша

Роли Azure имеют один или несколько экземпляров. Каждый экземпляр является виртуальной машиной, настроенное на размещение определенной роли. Если роль с включенным кэшем In-Role выполняется на нескольких экземплярах, формируется кластер кэша. Кластер кэша является распределяемой службой кэша, которая использует объединенную память всех машин в кластере. Приложения могут добавлять и извлекать элементы из кластера кэша без необходимости знать, в какой машине хранятся элементы. Если включен высокий уровень доступности, резервная копия элемента автоматически помещается на хранение в другой экземпляр виртуальной машины.

Примечание

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

При включении In-Role кэша в роли Azure необходимо указать объем памяти, который можно использовать для кэширования. В совместно размещенном сценарии вы выбираете процент доступной памяти на виртуальных машинах, на которой размещается роль. В выделенном сценарии вся доступная память на виртуальных машинах используется для кэширования. Однако доступной памяти на виртуальной машине всегда меньше, чем общей физической памяти, в связи с требованиями памяти операционной системы.

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

Предупреждение

При масштабировании запущенных экземпляров роли, на которых размещается In-Role cache, уменьшите число экземпляров не более чем на три за раз. После завершения данных изменений вы можете дополнительно удалить до трех работающих экземпляров; повторяйте данное действие, пока вы не достигнете желаемого числа работающих экземпляров. Последовательное масштабирование в обратном направлении более чем на три экземпляра за один раз приведет к нестабильной работе кластера кэша.

Каждый кластер кэша поддерживает общие сведения о состоянии среды выполнения кластера в службе хранилища Azure. Во время разработки можно использовать эмулятор хранения Azure. Развернутые роли должны указывать допустимую учетную запись хранения Azure. В Visual Studio можно указать соответствующую учетную запись хранения на вкладке "Кэширование" свойств роли.

Именованные кэши

Каждый кластер кэша имеет хотя бы один кэш с именем default. С помощью In-Role кэша на основе ролей можно также добавить дополнительные именованные кэши. Существуют различные параметры, которые могут быть изменены для каждого кэша. На следующем снимке экрана показан раздел Параметры именованного кэша на вкладке "Кэширование" в параметрах роли Visual Studio.

Caching Properties for Named Caches

В Visual Studio нажмите кнопку "Добавить именованный кэш", чтобы добавить дополнительные именованные кэши. В предыдущем примере были добавлены два дополнительных кэша, NamedCache1 и NamedCache2. Каждый кэш имеет разные параметры. Измените параметры, выбрав и изменив определенные поля в таблице.

Именованные кэши обеспечивают гибкость разработчикам приложений. Каждый именованный кэш обладает своими собственными свойствами. Например, один кэш может включить Высокий уровень доступности для получения соответствующих преимуществ. Другим кэшам, возможно, не требуется данный параметр, так как высокий уровень доступности требует двойной объем памяти для каждого элемента в кэше. Лучшим использованием ресурсов является использование высокого уровня доступности только в кэшах, которым это необходимо. Существуют другие похожие сценарии, в которых многие кэши могут использоваться с различными свойствами для соответствия требованиям приложения.

Клиенты кэша

Клиент кэша— это код приложения, который хранит и извлекает элементы из кластера кэша. При использовании In-Role Кэш на ролях клиенты кэша должны быть частью той же роли кэширования или включены в другие роли в развертывании. Настройте клиенты кэша, используя файлы конфигурации в приложении или в сети. Дополнительные сведения см. в статье "Практическое руководство. Подготовка Visual Studio к использованию кэша In-Role Azure". В следующем примере показан элемент dataCacheClient в файле конфигурации.

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="CachingRole1" />
    <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
  </dataCacheClient>
</dataCacheClients>

В предыдущем примере элемент автообнаружения имеет атрибут идентификатора , равный CachingRole1. Этот идентификатор указывает, что CachingRole1 кэш In-Role включен. Это указывает расположение сервера кэша. Клиент кэша автоматически используется CachingRole1 в любых операциях кэширования.

После настройки клиент кэша может получить доступ к любому кэшу по имени. Следующий пример получает доступ к кэшу NamedCache1 и добавляет в него элемент.

DataCache cache = new DataCache("NamedCache1", "default");
cache.Put("testkey", "testobject");

Конструктор DataCache принимает два параметра: имя кэша и имя раздела DataCacheClient . Сведения об имени кэша см. в предыдущем разделе именованных кэшей.

в этом разделе

См. также:

Основные понятия

Cache