Кэширование Windows Azure - это функция распределенного кэширования в памяти, разработанная для приложений Microsoft Azure . [1] Кэширование было доступно как часть Windows Azure SDK. Службы управляемого кэша Azure и ролевого кэша были прекращены, и Microsoft рекомендовала перейти на кэш Redis для Azure . [2]
Архитектура [ править ]
Кэширование Windows Azure позволяет облачной службе размещать кэширование в роли Windows Azure. [1] Кэш распределяется по всем запущенным экземплярам этой роли. Следовательно, объем доступной памяти в кэше определяется количеством запущенных экземпляров роли, в которой размещается кэширование, и объемом физической памяти, зарезервированной для кэширования в каждом экземпляре. [3]
Есть две топологии развертывания для кэширования:
Выделенная топология [ править ]
В выделенной топологии вы определяете рабочую роль, предназначенную для кэширования. Это означает, что вся доступная память рабочей роли используется для кэширования и операционных издержек.
На следующей диаграмме показано кэширование в выделенной топологии. Показанная облачная служба имеет три роли: Web1, Worker1 и Cache1. У каждой роли есть два запущенных экземпляра. В этом примере кэш распределен по всем экземплярам выделенной роли Cache1.
Выделенная топология имеет преимущество масштабирования уровня кэширования независимо от любой другой роли в облачной службе. [6] Для наилучшей производительности кэширования рекомендуется выделенная топология, поскольку экземпляры ролей не разделяют свои ресурсы с другим кодом приложения и службами. [4]
Совместная топология [ править ]
В совмещенной топологии вы используете процент доступной памяти в существующих веб-ролях или рабочих ролях для кэширования. [5]
На следующей диаграмме показано кэширование в совмещенной топологии. Облачный сервис имеет две роли: Web1 и Worker1. У каждой роли есть два запущенных экземпляра. В этом примере кеш распределен по всем экземплярам роли Web1. Поскольку в этой роли также размещается интерфейсный веб-интерфейс для облачной службы, кэш настроен на использование только процента физической памяти в каждом экземпляре роли Web1.
Совместно расположенный кэш - это экономичный способ использования существующей памяти для роли в облачной службе. [5]
Примеры [ править ]
В следующих разделах показаны конфигурация кэширования Windows Azure и примеры кода.
Пример конфигурации [ править ]
В Visual Studio кэширование настраивается на вкладке «Кэширование» свойств роли, в которой размещено кэширование. [7] Это вносит основные изменения в файл ServiceConfiguration.cscfg. [8] Эти настройки определяют используемую топологию (выделенную или совместно расположенную), количество именованных кэшей [9] и их настройки.
Другие роли должны быть настроены для использования кэширования. [10] Один из способов сделать это - использовать пакет NuGet . Это включает изменение web.config, чтобы он содержал правильно настроенный раздел dataCacheClients [11] . В следующем примере раздела dataCacheClients указано, что роль, в которой размещается кэширование, называется «CacheWorker1».
<dataCacheClients> <dataCacheClient name = "default" > <autoDiscover isEnabled = "true" identifier = "CacheWorkerRole1" /> </dataCacheClient> </dataCacheClients>
Примеры кода [ править ]
Обратите внимание, что образцы кода в этом разделе показаны на C # .
При размещении кэширования в ролях конструктор класса DataCache может использоваться для указания как именованного кеша, так и раздела dataCacheClient для настроек клиента кеширования. Следующий код показывает , как создать именованный кэш, NamedCache2 , используя настройки из dataCacheClient секции с именем CustomClient .
DataCache Cache = новый DataCache ( «NamedCache2» , «customClient» );
Следующий метод показывает, как использовать объект Cache для извлечения данных из кеша. В этом примере идентификатор пользователя ( ИД пользователя ) является ключом для связанного информационного объекта пользователя. Код сначала пытается получить эту информацию о пользователе из кеша, используя ключ идентификатора пользователя . Если это не удается, код извлекает информацию с помощью запроса к базе данных, а затем сохраняет возвращенные данные пользователя в кеше. При следующем запуске того же кода информация о пользователе будет возвращена из кеша, а не из базы данных. Это предполагает, что срок действия кэшированных данных не истек или они не были удалены.
dataType GetUserData ( строка ИД пользователя ) { dataType data = null ; // Попытка получить данные пользователя из кеша: объект dataObject = Cache . Получить ( идентификатор пользователя ); если ( dataObject ! = null ) data = ( dataType ) dataObject ; else { // Если его нет в кеше, извлечь его из базы данных: data = GetUserDataFromDatabase ( "ВЫБРАТЬ * ОТ пользователей WHERE userid = @userid" , userid ); // Помещаем возвращенные данные в кеш для будущих запросов: Cache . Добавить ( идентификатор пользователя , данные ); } вернуть данные ; }
Следующий метод показывает, как обновить данные, которые уже находятся в кеше.
void UpdateUserData ( string userid , dataType data ) { // Обновляем информацию о пользователе в базе данных: result = UpdateUserDataInDatabase ( userid , data ); if ( result ) { // В случае успешного обновления обновляем кеш: Cache . Поместите ( идентификатор пользователя , данные ); } }
Следующий вызов удаляет элемент из кеша.
Кэш . Удалить ( идентификатор пользователя );
[ править ]
Общее кэширование Windows Azure предоставляет кэширование как управляемую услугу. [12] В отличие от совмещенных или выделенных топологий, кэш не размещается в ролях Windows Azure в одном развертывании облачной службы. Вместо этого кеш предоставляется в виде многопользовательской службы с квотами использования. [13] Служба разделена на уровни от 128 МБ до 4 ГБ. [14] Помимо емкости хранилища, каждый уровень обеспечивает увеличивающиеся возможности процессора и сети. [14] Общее кэширование позволяет нескольким облачным сервисам получать доступ к одному и тому же кешу.
История [ править ]
Кэширование Windows Azure уходит корнями в локальную технологию AppFabric . Первоначально он был выпущен как одна из нескольких служб Windows Azure AppFabric, но с тех пор от обозначения AppFabric в Windows Azure отказались. Многие имена сборок, пространства имен и API-интерфейсы идентичны в Windows Azure Caching и AppFabric Caching. [15] Первый выпуск кэширования для Windows Azure в апреле 2011 года предоставлял кэширование как управляемую службу в Windows Azure. [16] Это предложение теперь называется Shared Caching.
В октябре 2012 года была добавлена поддержка размещения кэширования для ролей в развертывании облачной службы. [17] Теперь это называется кэшированием Windows Azure.
Связанные технологии кеширования [ править ]
Кэширование Windows Azure связано с другими технологиями кэширования Microsoft. Эти технологии имеют схожие функции, такие как имя сборки, пространство имен и типы. [15] Однако есть некоторые отличия. В таблице ниже описаны эти технологии.
Технология кеширования | Цель | Установлено | Описание |
---|---|---|---|
Кэширование AppFabric | На территории | AppFabric | Распределенный локальный кеш, который использует серверы, которые пользователь подготавливает и управляет. |
Кэширование Windows Azure | Облако | Пакет SDK для Windows Azure | Кэширование распределяется между экземплярами одной роли в развертывании облачной службы Windows Azure. |
Общее кэширование Windows Azure | Облако | Пакет SDK для Windows Azure | Кэширование предоставляется в виде многопользовательской службы для использования облачными службами Windows Azure. |
Ссылки [ править ]
- ^ a b «Кэширование в Windows Azure» . Библиотека MSDN . Microsoft . Проверено 12 февраля 2013 года .
- ^ Rastogi, Pranav (3 декабря 2015). «Службы управляемого кэша Azure и ролевого кэша будут прекращены 30 ноября 2016 г.» . Блог Microsoft Azure . Проверено 22 марта 2017 года .
- ^ «Рекомендации по планированию емкости для кэширования Windows Azure» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ a b «Кэширование Windows Azure для выделенных ролей» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ a b c «Кэширование в Windows Azure для существующих ролей» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ «О кэшировании Windows Azure, кластере кэша» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ «Как использовать кэширование Windows Azure» . Веб-сайт Windows Azure . Microsoft . Проверено 13 февраля 2013 года .
- ^ «Параметры конфигурации роли кэширования Windows Azure (ServiceConfiguration.cscfg)» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ «О кэшировании Windows Azure, именованных кешах» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ «Начало работы с разработкой для кэширования Windows Azure, настройка клиентов» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ «Параметры конфигурации клиента кэширования Windows Azure (Web.config), dataCacheClients» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ a b «Различия между кешированием в локальной среде и в облаке» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ «Введение в службу кэширования Windows Azure» . Журнал MSDN . Microsoft . Проверено 13 февраля 2013 года .
- ^ «Примечания к выпуску кэширования Windows Azure (октябрь 2012 г.)» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
Внешние ссылки [ править ]
- Документация по кэшированию Windows Azure
- Центр разработчиков Windows Azure
- Руководство по кэшированию в Windows Azure
- Примеры кэширования Windows Azure
- Справочник по библиотеке классов кэширования Windows Azure