Параметры конфигурации роли кэша роли (ServiceConfiguration.cscfg)
Важно! |
---|
Во всех новых разработках рекомендуется использовать кэш 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="{"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}]}" />
<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. Двойные кавычки в синтаксисе пропускаются с помощью ссылки на сущность символа "
. Следующее значение NamedCaches взято из приведенного выше полного файла 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}]}
В следующем примере показан тот же параметр из предыдущего примера, но вывод отформатирован, а символы "
заменены двойными кавычками. Этот пример позволяет лучше понять синтаксис. Его нельзя использовать в файле 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 |
Определяет количество резервных копий, необходимых для обеспечения высокого уровня доступности. На данный момент значение должно быть равно |
Поле policy состоит из следующих свойств.
Поле Policy | Описание | ||
---|---|---|---|
eviction |
Содержит одно поле, type, которое задает тип вытеснения. Возможными значениями являются |
||
expiration |
Содержит три поля, описывающих политику истечения срока действия.
|
||
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" />