Параметры конфигурации роли кэша роли (ServiceConfiguration.cscfg)

ImportantВажно!
Во всех новых разработках рекомендуется использовать кэш Redis для Azure. Текущую документацию и руководства по выбору предложения службы кэша Azure см. в статье Какое предложение службы кэша Azure подходит мне лучше всего?

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

ServiceConfiguration.cscfg

В следующем примере демонстрируется базовый файл ServiceConfiguration.cscfg с настроенным кэширование. В примере показаны два именованных кэша — default и NamedCache1. Он может быть образцом справочных разделов.

<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="WindowsAzure1" xmlns="https://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2012-10.1.8">
  <Role name="WebRole1">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.NamedCaches" value="{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />
      <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />
    </ConfigurationSettings>
  </Role>
</ServiceConfiguration>

NamedCaches

Параметр Microsoft.WindowsAzure.Plugins.Caching.NamedCaches задает все кэши и их параметры конфигурации. Для организации этих сведений используется синтаксис JSON. Двойные кавычки в синтаксисе пропускаются с помощью ссылки на сущность символа &quot;. Следующее значение NamedCaches взято из приведенного выше полного файла ServiceConfiguration.cscfg.

{&quot;caches&quot;:[{&quot;name&quot;:&quot;default&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:0},&quot;expiration&quot;:{&quot;defaultTTL&quot;:10,&quot;isExpirable&quot;:true,&quot;type&quot;:1},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:false}},&quot;secondaries&quot;:0},{&quot;name&quot;:&quot;NamedCache1&quot;,&quot;policy&quot;:{&quot;eviction&quot;:{&quot;type&quot;:-1},&quot;expiration&quot;:{&quot;defaultTTL&quot;:20,&quot;isExpirable&quot;:true,&quot;type&quot;:2},&quot;serverNotification&quot;:{&quot;isEnabled&quot;:true}},&quot;secondaries&quot;:1}]}

В следующем примере показан тот же параметр из предыдущего примера, но вывод отформатирован, а символы &quot; заменены двойными кавычками. Этот пример позволяет лучше понять синтаксис. Его нельзя использовать в файле ServiceConfiguration.cscfg.

{
    "caches": [
        {
            "name": "default",
            "policy": {
                "eviction": {"type": 0},
                "expiration": {"defaultTTL": 10, "isExpirable": true, "type": 1},
                "serverNotification": {"isEnabled": false}
            },
            "secondaries": 0
        },
        {
            "name": "NamedCache1",
            "policy": {
                "eviction": {"type": -1},
                "expiration": {"defaultTTL": 20, "isExpirable": true, "type": 2},
                "serverNotification": {"isEnabled": true}
            },
           "secondaries": 1
        }
    ]
}

Все именованные классы определяются в рамках поля caches верхнего уровня. Каждый именованный кэш определяется значениями следующих трех полей.

Поле Caches Описание

name

Указывает имя кэша.

policy

Политика параметров вытеснения, истечения срока действия и уведомлений.

secondaries

Определяет количество резервных копий, необходимых для обеспечения высокого уровня доступности. На данный момент значение должно быть равно 0 или 1. Значение 0 отключает высокий уровень доступности.

Поле policy состоит из следующих свойств.

Поле Policy Описание

eviction

Содержит одно поле, type, которое задает тип вытеснения. Возможными значениями являются 0 (наиболее давнее использование) и -1 (Нет). Значение 0 включает вытеснение наиболее давно использовавшихся элементов. Значение -1 отключает вытеснение.

expiration

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

  1. defaultTTL: количество минут, в течение которых элемент остается в кэше до истечения срока действия.

  2. isExpirable: значение true включает политику истечения срока действия, а значение false отключает ее.

  3. type: тип истечения срока действия. Значение 0 отключает политику истечения срока действия. Значение 1 задает абсолютный срок действия. Значение 2 задает скользящий срок действия. При скользящем сроке действия каждое обращение к элементу в кэше приводит к сбросу срока действия.

ImportantВажно!
В type задано значение 0 (отключено), isExpirable должен иметь значение fasle и defaultTTL должен иметь значение 0.

serverNotification

Содержит одно поле, isEnabled, которое указывает, включены ли уведомления для этого кэша.

ClientDiagnosticLevel

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

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />

DiagnosticLevel

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

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel" value="1" />

CacheSizePercentage

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

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="30" />

В выделенных топологиях это должна быть пустая строка.

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.CacheSizePercentage" value="" />

ConfigStoreConnectionString

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

<Setting name="Microsoft.WindowsAzure.Plugins.Caching.ConfigStoreConnectionString" value="UseDevelopmentStorage=true" />