Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Кэширование Windows Azure - это функция распределенного кэширования в памяти, разработанная для приложений Microsoft Azure . [1] Кэширование было доступно как часть Windows Azure SDK. Службы управляемого кэша Azure и ролевого кэша были прекращены, и Microsoft рекомендовала перейти на кэш Redis для Azure . [2]

Архитектура [ править ]

Кэширование Windows Azure позволяет облачной службе размещать кэширование в роли Windows Azure. [1] Кэш распределяется по всем запущенным экземплярам этой роли. Следовательно, объем доступной памяти в кэше определяется количеством запущенных экземпляров роли, в которой размещается кэширование, и объемом физической памяти, зарезервированной для кэширования в каждом экземпляре. [3]

Есть две топологии развертывания для кэширования:

  • Выделенный [4]
  • Совместное размещение [5]

Выделенная топология [ править ]

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

На следующей диаграмме показано кэширование в выделенной топологии. Показанная облачная служба имеет три роли: Web1, Worker1 и Cache1. У каждой роли есть два запущенных экземпляра. В этом примере кэш распределен по всем экземплярам выделенной роли Cache1.

Представляет работающую облачную службу Windows Azure, которая использует кэширование с выделенной топологией.

Выделенная топология имеет преимущество масштабирования уровня кэширования независимо от любой другой роли в облачной службе. [6] Для наилучшей производительности кэширования рекомендуется выделенная топология, поскольку экземпляры ролей не разделяют свои ресурсы с другим кодом приложения и службами. [4]

Совместная топология [ править ]

В совмещенной топологии вы используете процент доступной памяти в существующих веб-ролях или рабочих ролях для кэширования. [5]

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

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

Совместно расположенный кэш - это экономичный способ использования существующей памяти для роли в облачной службе. [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] Однако есть некоторые отличия. В таблице ниже описаны эти технологии.

Ссылки [ править ]

  1. ^ a b «Кэширование в Windows Azure» . Библиотека MSDN . Microsoft . Проверено 12 февраля 2013 года .
  2. ^ Rastogi, Pranav (3 декабря 2015). «Службы управляемого кэша Azure и ролевого кэша будут прекращены 30 ноября 2016 г.» . Блог Microsoft Azure . Проверено 22 марта 2017 года .
  3. ^ «Рекомендации по планированию емкости для кэширования Windows Azure» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  4. ^ a b «Кэширование Windows Azure для выделенных ролей» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  5. ^ a b c «Кэширование в Windows Azure для существующих ролей» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  6. ^ «О кэшировании Windows Azure, кластере кэша» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  7. ^ «Как использовать кэширование Windows Azure» . Веб-сайт Windows Azure . Microsoft . Проверено 13 февраля 2013 года .
  8. ^ «Параметры конфигурации роли кэширования Windows Azure (ServiceConfiguration.cscfg)» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  9. ^ «О кэшировании Windows Azure, именованных кешах» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  10. ^ «Начало работы с разработкой для кэширования Windows Azure, настройка клиентов» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  11. ^ «Параметры конфигурации клиента кэширования Windows Azure (Web.config), dataCacheClients» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  12. ^ «Об общем кэшировании Windows Azure» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  13. ^ «Общие сведения о квотах для общего кэширования Windows Azure» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  14. ^ a b «Часто задаваемые вопросы по общему кэшированию Windows Azure» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  15. ^ a b «Различия между кешированием в локальной среде и в облаке» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .
  16. ^ «Введение в службу кэширования Windows Azure» . Журнал MSDN . Microsoft . Проверено 13 февраля 2013 года .
  17. ^ «Примечания к выпуску кэширования Windows Azure (октябрь 2012 г.)» . Библиотека MSDN . Microsoft . Проверено 13 февраля 2013 года .

Внешние ссылки [ править ]

  • Документация по кэшированию Windows Azure
  • Центр разработчиков Windows Azure
  • Руководство по кэшированию в Windows Azure
  • Примеры кэширования Windows Azure
  • Справочник по библиотеке классов кэширования Windows Azure