Кэширование Windows Azure - Windows Azure Caching
Кэширование Windows Azure был в памяти, распределенное кеширование функция, предназначенная для Windows 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> имя ="дефолт"> isEnabled ="истинный" идентификатор ="CacheWorkerRole1" /> </dataCacheClient></dataCacheClients>
Примеры кода
Обратите внимание, что образцы кода в этом разделе показаны в C #.
При размещении кеширования для ролей DataCache конструктор класса может использоваться для указания как именованного кеша, так и dataCacheClient раздел настроек клиента кеширования. В следующем коде показано, как создать именованный кеш, NamedCache2, используя настройки из dataCacheClient раздел назван customClient.
DataCache Кеш = новый DataCache("NamedCache2", "customClient");
Следующий метод показывает, как использовать Кеш объект для извлечения данных из кеша. В этом примере идентификатор пользователя (ID пользователя) является ключом для связанного информационного объекта пользователя. Код сначала пытается получить эту информацию о пользователе из кеша с помощью ID пользователя ключ. Если это не удается, код извлекает информацию с помощью запроса к базе данных, а затем сохраняет возвращенные данные пользователя в кеше. При следующем запуске того же кода информация о пользователе будет возвращена из кеша, а не из базы данных. Это предполагает, что срок действия кэшированных данных не истек или они не были удалены.
тип данных GetUserData(нить ID пользователя) { тип данных данные = ноль; // Попытка получить данные пользователя из кеша: объект dataObject = Кеш.Получать(ID пользователя); если (dataObject != ноль) данные = (тип данных)dataObject; еще { // Если его нет в кеше, извлечь его из базы данных: данные = GetUserDataFromDatabase("ВЫБРАТЬ * ОТ пользователей, ГДЕ userid = @userid", ID пользователя); // Помещаем возвращенные данные в кеш для будущих запросов: Кеш.Добавлять(ID пользователя, данные); } возвращаться данные;}
Следующий метод показывает, как обновить данные, которые уже находятся в кеше.
пустота UpdateUserData(нить ID пользователя, тип данных данные) { // Обновляем информацию о пользователе в базе данных: результат = UpdateUserDataInDatabase(ID пользователя, данные); если (результат) { // В случае успешного обновления обновляем кеш: Кеш.Положить(ID пользователя, данные); }}
Следующий вызов удаляет элемент из кеша.
Кеш.Удалять(ID пользователя);
Общее кэширование 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] Первый выпуск Caching for 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. |
Рекомендации
- ^ а б «Кэширование в Windows Azure». Библиотека MSDN. Microsoft. Получено 12 февраля 2013.
- ^ Растоги, Пранав (3 декабря 2015 г.). «Службы управляемого кэша Azure и ролевого кэша будут прекращены 30.11.2016». Блог Microsoft Azure. Получено 22 марта 2017.
- ^ «Рекомендации по планированию емкости для кэширования Windows Azure». Библиотека MSDN. Microsoft. Получено 13 февраля 2013.
- ^ а б «Кэширование Windows Azure для выделенных ролей». Библиотека MSDN. Microsoft. Получено 13 февраля 2013.
- ^ а б 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.
- ^ а б «Различия между кешированием в локальной среде и в облаке». Библиотека MSDN. Microsoft. Получено 13 февраля 2013.
- ^ «Представляем службу кэширования Windows Azure». Журнал MSDN. Microsoft. Получено 13 февраля 2013.
- ^ «Примечания к выпуску кэширования Windows Azure (октябрь 2012 г.)». Библиотека MSDN. Microsoft. Получено 13 февраля 2013.