Продажи: 1-800-867-1389

Переход с кэша роли к управляемой службе кэша Azure

Обновлено: Июль 2010 г.

noteПримечание
Руководство по выбору правильного предложения службы кэша Azure см. в разделе Какой кэш Azure подходит мне лучше всего?.

Приложения Кэш Microsoft Azure, использующие Кэш в роли, можно переносить в Управляемая служба кэша Azure с незначительными изменениями. Так как Управляемая служба кэша использует такой же API, что и Кэш в роли, существующий код, в котором для доступа к кэшу используется Кэш в роли, можно использовать и для Управляемая служба кэша. В этом разделе рассказывается, как внести нужные изменения в конфигурацию и приложения, чтобы перенести приложения Кэш в роли в Управляемая служба кэша.

Управляемая служба кэша доступно три следующих предложения.

  • Basic — кэш размером от 128 МБ до 1 ГБ с приращением в 128 МБ с одним именованным кэшем по умолчанию.

  • Standard — кэш размером от 1 до 10 ГБ с приращением в 1 ГБ, а также поддержкой уведомлений и до десяти именованных кэшей.

  • Premium — кэш размером от 5 до 150 ГБ с приращением в 5 ГБ, а также поддержкой уведомлений, высокого уровня доступности и до десяти именованных кэшей.

noteПримечание
Все предложения отличаются ценой и возможностями. Дополнительные сведения см. в статье Вопросы и ответы о ценах на использование службы кэша и разделе Предложения кэша для управляемой службы кэша Azure. Более подробная информация также приведена в разделе Configure the Cache данного руководства по миграции.

Все функции кэша в Кэш в роли доступны в различных размерах кэша для Управляемая служба кэша. Если ваше приложение использует уведомления, тогда следует выбрать размер кэша либо Standard, либо Basic. Если у вашего кэша разрешена высокая доступность, следует выбирать размер Premium. Отправная точка при миграции — выбор размера кэша Управляемая служба кэша с функциональными возможностями кэша, необходимыми для вашего приложения, и соответствующего пропускной способности для вашего приложения Кэш в роли.

После развертывания приложения можно отслеживать производительность кэша и масштабировать его в зависимости от потребностей приложения. Дополнительные сведения мониторинге производительности и масштабировании см. в разделах Мониторинг управляемой службы кэша Azure и Масштабирование кэша для управляемой службы кэша Azure.

Экземпляры кэша в Управляемая служба кэша создаются с помощью скриптов PowerShell.

ImportantВажно!
Экземпляр Управляемая служба кэша, созданный с помощью командлетов PowerShell, можно просмотреть и настроить на портале управления Azure.

  1. Откройте командное окно Azure PowerShell.

    noteПримечание
    Указания по установке и использованию см. в статье How to install and configure Azure PowerShell (Установка и настройка Azure PowerShell).

  2. Вызовите командлет Add-AzureAccount и введите электронный адрес и пароль, связанный с вашей учетной записью.

    noteПримечание
    Если вы настроили для Azure PowerShell сертификат своей учетной записи, то этот шаг можно пропустить. Дополнительные сведения подключении к Azure PowerShell с помощью учетной записи Azure см. в статье Установка и настройка Azure PowerShell.

  3. Вызовите командлет New-AzureManagedCache и укажите имя, область, размер кэша и память кэша. В приведенном примере в географической области South Central US создан кэш contosocache размера Basic с памятью 128 МБ.

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    
    noteПримечание
    Полный список параметров и значений, которые можно использовать при создании кэша, см. в документации по командлету New-AzureManagedCache.

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

    За процессом создания можно наблюдать в окне Azure PowerShell. Как только кэш будет готов к использованию, командлет New-AzureManagedCache выведет информацию о кэше, как показано в приведенном примере.

    PS C:\> Add-AzureAccount
    VERBOSE: Account "user@domain.com" has been added.
    VERBOSE: Subscription "MySubscription" is selected as the default subscription.
    VERBOSE: To view all the subscriptions, please use Get-AzureSubscription.
    VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
    PS C:\> New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    VERBOSE: Intializing parameters...
    VERBOSE: Creating prerequisites...
    VERBOSE: Verify cache service name...
    VERBOSE: Creating cache service...
    VERBOSE: Waiting for cache service to be in ready state...
    
    
    Name     : contosocache
    Location : South Central US
    State    : Active
    Sku      : Basic
    Memory   : 128MB
    
    
    
    PS C:\>
    

Кэш в роли и Управляемая служба кэша поддерживают именованные кэши, что обеспечивает гибкость при настройке различных параметров кэша для разных наборов данных. У каждого кэша Управляемая служба кэша есть именованный кэш default, а при использовании размеров кэша Standard и Premium можно настроить до девяти дополнительных именованных кэшей. У каждого именованного кэша собственные настройки, в том числе параметры высокого уровня доступности, уведомлений, а также настраиваемые политики вытеснения и срока действия. Параметры именованного кэша можно настроить на портале управления, на вкладке "Configure" (Настройка) для кэша.

Именованные кэши в службе кэша Windows Azure

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

 

Компонент Поддержка Управляемая служба кэша Поддержка Кэш в роли

Название

Кэш default настроен предварительно, и при использовании предложений кэша Standard и Premium можно дополнительно настроить до девяти именованных кэшей.

Кэш default настроен, и дополнительные именованные кэши также можно настроить.

Высокий уровень доступности

Функция высокого уровня доступности есть только в предложении кэша «Расширенное» и недоступна для других видов кэша. Дополнительные сведения см. в разделе Предложения кэша для управляемой службы кэша Azure.

Для топологий Кэш в роли может быть включена высокая доступность.

Уведомления

Уведомления доступны для размеров кэша Standard и Premium, но не доступны для размера кэша Basic. Дополнительные сведения см. в разделе Предложения кэша для управляемой службы кэша Azure.

Уведомления могут быть включены для всех топологий Кэш в роли.

Политика вытеснения

Можно выбрать значение Включено, чтобы использовать алгоритм вытеснения наиболее давно использовавшихся элементов, или значение Отключено. По умолчанию используется значение Enabled (Включено).

Можно выбрать значение LRU (наиболее давно использованные элементы), или None (нет). По умолчанию используется LRU.

Время (мин)

В Управляемая служба кэша настройка называется Time (min) (Время (мин)).

В Кэш в роли настройка называется Time to live (min) (Время жизни (мин)).

Политика срока действия

Этот параметр называется Политика срока действия и может принимать три значения: Never (никогда), Absolute (абсолютный) и Sliding (скользящий), что соответствует параметру Политика срока действия из Кэш в роли.

Этот параметр называется Политика срока действия и может принимать три значения: None (нет), Absolute (абсолютный) и Sliding window (скользящее окно).

Чтобы перейти от использования Кэш в роли к Управляемая служба кэша, повторно создайте все именованные кэши из кластера кэша Кэш в роли в новом кэше Управляемая служба кэша.

После настройки нового кэша Управляемая служба кэша следующим шагом будет удаление кэширования из роли, в которой размещается Кэш в роли. То, как это выполняется, зависит от топологии кластера кэша для Кэш в роли.

Чтобы удалить кластер кэша в выделенной роли, нужно удалить проект рабочей роли кэша из решения Visual Studio и папки Роли в проекте облачных служб.

  1. В обозревателе решений щелкните правой кнопкой мыши рабочую роль кэша в папке Роли в проекте облачных служб и выберите Удалить.

    Удаление рабочей роли кэша
  2. В обозревателе решений щелкните правой кнопкой мыши проект рабочей роли и выберите Удалить.

Чтобы отключить кэширование в совмещенной веб-роли или рабочей роли, нужно в свойствах роли на вкладке Кэширование снять флажок Кэширование.

  1. В обозревателе решений щелкните правой кнопкой мыши проект рабочей роли и выберите Свойства.

    Пункт меню свойств роли из кэша
  2. Переключитесь на вкладку Кэширование, установите флажок Включить кэширование и нажмите клавиши CTRL+S, чтобы сохранить изменения.

    Отключить параметр совместного размещения кэша ролей

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

  • Веб-сайты Azure

  • Веб-роль и рабочая роль облачных служб Azure.

  • Виртуальные машины Azure

noteПримечание
Если проект Кэш в роли уже использует последнюю версию пакета SDK для , то все, что вам нужно, — обновить конфигурацию клиента кэша. Для этого пропустите следующие шаги и выполните процедуру, которая описана в разделе Обновление конфигурации клиента кэша для использования службы кэша.

Если проект Кэш в роли использует пакет SDK для 1.8—2.0, то вам нужно удалить пакет NuGet для кэша, удалить всю оставшуюся конфигурацию клиента кэша и затем установить последнюю версию пакета SDK для Azure (сейчас это версия 2.1). После обновления пакета SDK установите и настройте последний пакет NuGet для кэша. Чтобы настроить клиенты кэша, для каждого из них выполните приведенные ниже действия.

Прежде чем настроить клиентские приложения для Управляемая служба кэша, необходимо удалить существующую конфигурацию и ссылки на сборки Кэш в роли. Для этого можно удалить пакет NuGet для кэширования.

Чтобы удалить пакет NuGet для Кэш в роли, щелкните правой кнопкой мыши проект клиента в обозревателе решений и выберите пункт Управление пакетами NuGet. Выберите узел Установленные пакеты и введите текст Кэш в поле Поиск установленных пакетов. Выберите пункт Общий кэш Azure, затем последовательно нажмите кнопки Удалить и Закрыть.

noteПримечание
На приведенном снимке экрана показан пакет NuGet версии 2.1.0.0. Если у вас установлена эта или более поздняя версия, данный шаг можно пропустить. Этот шаг нужен, только если установлен пакет NuGet версии 1.8.* или 2.0.*.

Удаление пакета NuGet кэша в роли

При удалении пакета NuGet для Кэш в роли удаляются сборки Кэш в роли и записи Кэш в роли в файле app.config или web.config клиентского приложения. Так как при удалении пакета NuGet некоторые настроенные пользователем параметры могут быть не удалены, откройте файл web.config или app.config и убедитесь, что следующие элементы полностью удалены.

  • Убедитесь, что запись dataCacheClients удалена из элемента configSections. Не следует удалять элемент configSections полностью. Удалить следует только запись dataCacheClients, если она присутствует.

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • Убедитесь, что удален раздел dataCacheClients. Раздел dataCacheClients будет таким же, как в следующем примере.

    <dataCacheClients>
      <dataCacheClient name="default" channelOpenTimeout="0">
        <autoDiscover isEnabled="true" identifier="CacheWorker" />
      </dataCacheClient>
    </dataCacheClients>
    

После удаления конфигурации Кэш в роли можно настроить клиент кэша, как описано в следующем разделе Настройка клиента кэша с помощью пакета NuGet для Caching.

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

ImportantВажно!
Прежде чем настроить клиент кэша с помощью пакета NuGet для Управляемая служба кэша, убедитесь, что из файла web.config или app.config клиентской роли полностью удалена конфигурация Кэш в роли, как было описано в предыдущем разделе.

ImportantВажно!
Для выполнения этих действий требуется последняя версия диспетчера пакетов NuGet (2.2.* или более поздняя версия). Чтобы установить последнюю версию диспетчера пакетов NuGet, см. статью NuGet Package Manager (Диспетчер пакетов NuGet).

Чтобы использовать пакет NuGet для Управляемая служба кэша, щелкните правой кнопкой мыши проект клиента в обозревателе решений и выберите пункт Управление пакетами NuGet.

Выберите пункт Azure Caching, нажмите кнопку Установить и кнопку Принимаю. После установки пакета в проект клиента нажмите кнопку Закрыть, чтобы закрыть окно Управление пакетами NuGet.

noteПримечание
Если пункт Azure Caching отсутствует в списке, введите WindowsAzure.Caching в текстовом поле Поиск в сети.

Пакет NuGet кэша Windows Azure

При установке пакета NuGet для Управляемая служба кэша в проект клиента добавляется конфигурация и ссылки на сборки, которые необходимы, чтобы клиентское приложение имело доступ к кэшу.

В файл web.config или app.config проекта добавляется несколько элементов.

  1. В configSections добавляются разделы dataCacheClients и cacheDiagnostics.

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. Раздел dataCacheClients добавляется в configuration.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
    Замените [Cache role name or Service Endpoint] URL-адресом конечной точки, отображенным в окне "Cache Dashboard" (Панель мониторинга кэша) на портале управления.

    URL-адрес конечной точки для службы кэша Windows Azure
    В этом примере используется кэш applicationcache и URL-адрес конечной точки applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
    Удалите комментирование раздела securityProperties и замените [Authentication Key] основным ключом проверки подлинности.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    Ключ проверки подлинности можно найти на портале управления. Для этого необходимо щелкнуть Manage Keys (Управление ключами) на панели мониторинга кэша. Дополнительные сведения ключах доступа и защите обмена данными с кэшем с помощью атрибута sslEnabled см. в разделе Модель безопасности для управляемой службы кэша Azure.

    Управление ключами доступа для службы кэша Windows Azure
    WarningПредупреждение
    Эти параметры следует настроить правильно, иначе клиенты не будут иметь доступа к кэшу.

Для проектов облачных служб пакет NuGet для Управляемая служба кэша также добавляет параметр ClientDiagnosticLevel в раздел ConfigurationSettings роли клиента кэша, расположенный в ServiceConfiguration.cscfg. В следующем примере приведен раздел WebRole1 из файла ServiceConfiguration.cscfg со значением ClientDiagnosticLevel, равным «1», которое является значением ClientDiagnosticLevel по умолчанию.

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>
noteПримечание
Дополнительные сведения уровнях диагностики кэша см. в разделе Об уровне ClientDiagnosticLevel для управляемой службы кэша Azure.

Помимо добавления параметров конфигурации, пакет NuGet для Управляемая служба кэша также добавляет ссылки на следующие сборки.

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

Если проект — это веб-проект, также добавляется следующая ссылка на сборку.

  • Microsoft.Web.DistributedCache.dll

noteПримечание
Управляемая служба кэша и Кэш в роли используют один API, и хотя имена сборок совпадают, сами они различаются и располагаются в разных местах. Пакет NuGet для Управляемая служба кэша удаляет ссылки на сборки Кэш в роли и добавляет правильные ссылки на сборки Управляемая служба кэша. Сборки Управляемая служба кэша расположены в папке C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.1\ref\Caching.

Если проект Кэш в роли уже использует последнюю версию пакета SDK для , то все, что вам нужно, — обновить конфигурацию клиента кэша, чтобы указать ему новый кэш Управляемая служба кэша.

  1. Откройте файл web.config или app.config из проекта клиента кэша и найдите раздел dataCacheClients.

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Windows Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Windows Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="MyCacheWorkerRole" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
  2. В разделе autoDiscover в атрибуте identifier замените имя роли кластера Кэш в роли URL-адресом конечной точки для кэша Управляемая служба кэша. URL-адрес конечной точки показан на панели мониторинга кэша на портале управления.

    URL-адрес конечной точки для службы кэша Windows Azure
    В этом примере используется кэш applicationcache и URL-адрес конечной точки applicationcache.cache.windows.net.

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
  3. Удалите комментирование раздела securityProperties и замените [Authentication Key] ключом проверки подлинности.

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    Ключ проверки подлинности можно найти на портале управления. Для этого необходимо щелкнуть Ключи доступа на панели мониторинга кэша.

    Управление ключами доступа для службы кэша Windows Azure

Когда веб-проекты ASP.NET переносятся из Кэш в роли в Управляемая служба кэша, как описано в разделе Configure the Cache Clients, чтобы обеспечить хранение кэша состояния сеансов или кэширование вывода страниц ASP.NET, требуются лишь небольшие изменения. Чтобы хранить состояние сеансов ASP.NET в кэше, добавьте следующий раздел в system.web в web.config.

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
  </providers>
</sessionState>
noteПримечание
Если для вашей веб-роли ASP.NET уже было настроено использование поставщика состояния сеансов для кэширование, то этот раздел уже существует, и дополнительные изменения не требуются.

Обновите cacheName, чтобы указать кэш, в котором хранится состояние сеанса. Используйте default для указания кэша по умолчанию.

Чтобы хранить вывод страниц в кэше, добавьте следующий раздел в system.web.

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>
noteПримечание
Если для вашей веб-роли ASP.NET уже было настроено использование поставщика кэша вывода для кэширование, то этот раздел уже существует, и дополнительные изменения не требуются.

Обновите cacheName, чтобы указать кэш, в котором хранится состояние сеанса. Используйте default для указания кэша по умолчанию.

Добавьте директиву OutputCache на каждую страницу, вывод которой должен кэшироваться.

<%@ OutputCache Duration="60" VaryByParam="*" %>

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

См. также

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2014 Microsoft