Jump to content

Кэширование Windows Azure

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

Архитектура

[ редактировать ]

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

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

  • Преданный [3]
  • Совместное расположение [4]

Выделенная топология

[ редактировать ]

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

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

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

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

Совмещенная топология

[ редактировать ]

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

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

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

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

В следующих разделах показаны конфигурация кэширования Windows Azure и примеры кода.

Пример конфигурации

[ редактировать ]

В Visual Studio Кэширование настраивается на вкладке Кэширование свойств роли, на которой размещается Кэширование. [6] Это вносит базовые изменения в файл ServiceConfiguration.cscfg. [7] Эти настройки определяют используемую топологию (выделенную или совмещенную) и количество именованных кэшей. [8] и их настройки.

Другие роли должны быть настроены на использование кэширования. [9] Один из способов сделать это — использовать пакет NuGet . Это включает в себя изменение файла web.config, чтобы он содержал правильно настроенный dataCacheClients. [10] раздел. В следующем примере раздела dataCacheClients указано, что роль, на которой размещается кэширование, называется «CacheWorker1».

<dataCacheClients>
  <dataCacheClient name="default">
    <autoDiscover isEnabled="true" identifier="CacheWorkerRole1" />
  </dataCacheClient>
</dataCacheClients>

Примеры кода

[ редактировать ]

Обратите внимание, что примеры кода в этом разделе показаны на C# .

При размещении кэширования в ролях конструктор класса DataCache можно использовать для указания как именованного кэша, так и раздела dataCacheClient для настроек клиента кэша. В следующем коде показано, как создать именованный кэш NamedCache2 с использованием параметров из раздела dataCacheClient с именем customClient .

var cache = new DataCache("NamedCache2", "customClient");

Следующий метод показывает, как использовать объект Cache для извлечения данных из кэша. В этом примере идентификатор пользователя ( userid ) является ключом для связанного объекта информации о пользователе. Код сначала пытается получить эту информацию о пользователе из кэша, используя ключ идентификатора пользователя . Если это не удается, код извлекает информацию с помощью запроса к базе данных, а затем сохраняет возвращенные пользовательские данные в кеше. При следующем запуске того же кода информация о пользователе будет возвращена из кэша, а не из базы данных. При этом предполагается, что срок действия кэшированных данных не истек или они не были удалены.

dataType GetUserData(string userId) 
{
    dataType data = null;

    // Attempt to retrieve the user data from the cache:
    object dataObject = Cache.Get(userId);

    if (dataObject != null)
       data = (dataType)dataObject;
    else
    {
       // If it doesn't exist in the cache, retrieve it from the database:
       data = GetUserDataFromDatabase("SELECT * FROM users WHERE userId = @userId", userId);

       // Put the returned data in the cache for future requests:
       Cache.Add(userId, data);
    }

    return data;
}

Следующий метод показывает, как обновить данные, которые уже находятся в кеше.

void UpdateUserData(string userId, dataType data) 
{
    // Update the user information in the database:
    result = UpdateUserDataInDatabase(userId, data);
    
    if (result) 
    {
       // If successfully updated, update the cache:
       Cache.Put(userId, data);
    }
}

Следующий вызов удаляет элемент из кэша.

Cache.Remove(userId);

Общее кэширование

[ редактировать ]

Общее кэширование Windows Azure предоставляет кэширование как управляемую службу. [11] В отличие от совмещенных или выделенных топологий, кэш не размещается в ролях Windows Azure в одном развертывании облачной службы. Вместо этого кеш предоставляется как мультитенантная служба с квотами на использование. [12] Услуга разделена на уровни в диапазоне от 128 МБ до 4 ГБ. [13] Помимо емкости хранилища, каждый уровень обеспечивает увеличение возможностей процессора и сети. [13] Общее кэширование позволяет нескольким облачным службам получать доступ к одному и тому же кешу.

Кэширование Windows Azure основано на локальной технологии AppFabric. Первоначально он был выпущен как один из нескольких сервисов Windows Azure AppFabric, но с тех пор от обозначения AppFabric в Windows Azure отказались. Многие имена сборок, пространства имен и API идентичны в кэшировании Windows Azure и кэшировании AppFabric. [14] Первый выпуск кэширования для Windows Azure в апреле 2011 года предоставлял кэширование как управляемую службу в Windows Azure. [15] Это предложение теперь называется Shared Caching.

В октябре 2012 г. была добавлена ​​поддержка размещения кэширования ролей в развертывании облачной службы. [16] Теперь это называется кэшированием Windows Azure.

[ редактировать ]

Кэширование Windows Azure связано с другими технологиями кэширования Microsoft. Эти технологии имеют схожие функции, такие как имя сборки, пространство имен и типы. [14] Однако есть некоторые различия. В таблице ниже описаны эти технологии.

Технология кэширования Цель Установлено Описание
Кэширование AppFabric Локально AppFabric Распределенный локальный кэш, использующий серверы, которые пользователь подготавливает и управляет.
Кэширование Windows Azure Облако Windows Azure SDK Кэширование распределяется по экземплярам одной роли в развертывании облачной службы Windows Azure.
Общее кэширование Windows Azure Облако Windows Azure SDK Кэширование предоставляется как мультитенантная служба для использования облачными службами Windows Azure.
  1. ^ «Кэширование в Windows Azure» . Библиотека MSDN . Майкрософт . Проверено 12 февраля 2013 г.
  2. ^ «Вопросы планирования емкости для кэширования Windows Azure» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  3. ^ Jump up to: а б «Кэширование Windows Azure для выделенных ролей» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  4. ^ Jump up to: а б с «Кэширование Windows Azure для существующих ролей» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  5. ^ «О кэшировании Windows Azure, кластере кэша» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  6. ^ «Как использовать кэширование Windows Azure» . Веб-сайт Windows Azure . Майкрософт . Проверено 13 февраля 2013 г.
  7. ^ «Параметры конфигурации роли кэширования Windows Azure (ServiceConfiguration.cscfg)» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  8. ^ «О кэшировании Windows Azure, именованных кэшах» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  9. ^ «Начало разработки для кэширования Windows Azure, настройка клиентов» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  10. ^ «Параметры конфигурации клиента кэширования Windows Azure (Web.config), dataCacheClients» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  11. ^ «Об общем кэшировании Windows Azure» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  12. ^ «Понимание квот для общего кэширования Windows Azure» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  13. ^ Jump up to: а б «Часто задаваемые вопросы по общему кэшированию Windows Azure» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  14. ^ Jump up to: а б «Различия между кэшированием локально и в облаке» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  15. ^ «Представляем службу кэширования Windows Azure» . Журнал MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  16. ^ «Примечания к выпуску кэширования Windows Azure (октябрь 2012 г.)» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bb849e61daaacb9fdfb630a7566a1105__1718366100
URL1:https://arc.ask3.ru/arc/aa/bb/05/bb849e61daaacb9fdfb630a7566a1105.html
Заголовок, (Title) документа по адресу, URL1:
Windows Azure Caching - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)