Поделиться через


Параметры конфигурации приложения (кэширование в AppFabric 1.1)

С помощью компонентов кэша Microsoft AppFabric 1.1 для Windows Server можно настраивать параметры клиента кэша приложения программно, с использованием файла конфигурации приложения или с применением обоих этих подходов в разных частях приложения. Дополнительные сведения о каждом из этих способов настройки и их выборе см. в разделе Настройка клиента кэша.

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

Дополнительные сведения об использовании этих параметров в приложении см. в примерах раздела Конфигурация клиента на основе XML.

Параметры клиента кэша

У каждого клиента кэша определены параметры конфигурации. Если вы используете файл конфигурации, они включены в разделы dataCachClient, которые можно встроить в раздел dataCacheClients. Пример:

  <dataCacheClients>
    <dataCacheClient name="default">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
    <dataCacheClient name="compressedCache" isCommpressionEnabled="true">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
  </dataCacheClients>

В предыдущем примере в файле конфигурации определено два клиента кэша: default и compressedCache. Для доступа к кэшу по умолчанию указывать имя клиента кэша не требуется. Пример:

DataCacheFactory factory = new DataCacheFactory();

Чтобы указать другой именованный раздел dataCacheClient, следует задать имя раздела клиента кэша с помощью конструктора DataCacheFactoryConfiguration.

DataCacheFactoryConfiguration factoryConfig = new DataCacheFactoryConfiguration("compressedCache");
DataCacheFactory factory = new DataCacheFactory(factoryConfig)

Если вы не используете файл конфигурации приложения, вы можете программно определить все параметры в свойствах класса DataCacheFactoryConfiguration.

Параметр Местоположение конфигурации XML Местоположение конфигурации кода

Сжатие (логический)

Атрибут isCompressionEnabled элемента dataCacheClient. По умолчанию используется значение false.

Свойство IsCompressionEnabled класса DataCacheFactoryConfiguration.

Время ожидания клиента (в миллисекундах)

Атрибут requestTimeout в элементе dataCacheClient. Не рекомендуется указывать значение меньше 10000 (10 секунд). По умолчанию используется значение 15000.

Свойство RequestTimeout класса DataCacheFactoryConfiguration.

Время ожидания открытия канала (в миллисекундах)

Атрибут channelOpenTimeout в элементе dataCacheClient. Для этого атрибута можно установить значение 0, чтобы немедленно обрабатывать любые сетевые проблемы. Дополнительные сведения см. в разделе Настройка времени ожидания клиента кэша. По умолчанию используется значение 3000.

Свойство ChannelOpenTimeout класса DataCacheFactoryConfiguration.

Максимальное число подключений к серверу

Атрибут maxConnectionsToServer в элементе dataCacheClient. По умолчанию используется значение 1.

Свойство MaxConnectionsToServer класса DataCacheFactoryConfiguration.

Параметры узла кэша

Для каждого клиента кэша необходимо указать один или несколько узлов кэша в кластере. Указывайте ведущие узлы, поскольку узлы кэша, считающиеся ведущими, помогают управлять кластером. Изначально ведущими являются узлы, которые были установлены в кластере первыми. Дополнительные сведения о ведущих узлах см. в разделе Схема физической архитектуры кэширования AppFabric (кэширование в AppFabric 1.1).

В файле конфигурации приложения параметры узла локального кэша указываются в элементе узла, который является дочерним по отношению к элементу hosts. Программно каждый узел обозначается в конструктора классов класса DataCacheServerEndpoint. После установки эти объекты DataCacheServerEndPoint передаются в свойство Servers класса DataCacheServerEndpoint.

Параметр Местоположение конфигурации XML Местоположение конфигурации кода

Имя сервера кэша

Атрибут name элемента host.

Свойство HostName класса DataCacheServerEndpoint.

Номер порта кэша

Атрибут cachePort элемента host.

Свойство CachePort класса DataCacheServerEndpoint.

Параметры локального кэша

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

В файле конфигурации приложения параметры локального кэша задаются в элементе localCache, который является дочерним по отношению к элементу dataCacheClient. Программным образом локальный кэш настраивается с помощью экземпляра класса DataCacheFactoryConfiguration, который передается в конструктор класса DataCacheFactory. Дополнительные сведения о локальном кэше см. в разделе Клиенты кэша и локальный кэш (кэширование в AppFabric 1.1).

Параметр Местоположение конфигурации XML Местоположение конфигурации кода

Локальный кэш включен

Атрибут isEnabled в элементе localCache. Значения могут быть true или false. Кроме того, может отсутствовать элемент localCache, что указывает на его отключенное состояние.

Свойство IsEnabled класса DataCacheLocalCacheProperties. После этого значение назначается свойству LocalCacheProperties класса DataCacheFactoryConfiguration.

Метод недействительности локального кэша

Атрибут sync в элементе localCache. Используйте значение TimeoutBased для указания значения времени ожидания, которое необходимо использовать. Используйте NotificationBased для указания уведомлений кэша, которые также необходимо использовать.

Свойство InvalidationPolicy класса DataCacheLocalCacheProperties. Возможны значения NotificationBased и TimeoutBased.

Время ожидания локального кэша (в секундах)

Атрибут ttlValue в элементе localCache.

Свойство DefaultTimeout класса DataCacheLocalCacheProperties.

Интервал опроса для конкретных уведомлений кэша (в секундах)

(Необязательно) Указывается атрибутом pollInterval элемента clientNotification. Элемент clientNotification является дочерним по отношению к элементу dataCacheClient и не является дочерним по отношению к элементу localCache. Если не указано, используется значение, равное 300 секундам.

Свойство PollInterval класса DataCacheNotificationProperties. После этого значение назначается свойству NotificationProperties класса DataCacheFactoryConfiguration.

Максимальное число локально кэшированных объектов

(Необязательно) Указывается атрибутом objectCount в элементе localCache. Срабатывает при запуске вытеснения для локального кэша; затем будет пытаться удалить 20 процентов наиболее давно использовавшихся локально кэшированных объектов. Если не указано, используется значение по умолчанию, равное 10 000 объектам.

Свойство ObjectCount класса DataCacheLocalCacheProperties.

Примечание

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

Параметры уведомления

В файле конфигурации приложения свойства уведомления задаются в элементе clientNotification, который является дочерним по отношению к элементу dataCacheClient. Программным образом свойства уведомления настраиваются с помощью экземпляра класса DataCacheFactoryConfiguration, который передается в конструктор класса DataCacheFactory. Дополнительные сведения см. в разделе Методы настройки.

Параметр Расположение конфигурации XML Расположение конфигурации кода

Интервал опроса для конкретных уведомлений кэша (в секундах)

Указывается атрибутом pollInterval элемента clientNotification. Если не указано, используется значение, равное 300 секундам.

Свойство PollInterval класса DataCacheNotificationProperties. После этого значение назначается свойству NotificationProperties класса DataCacheFactoryConfiguration.

Максимальная длина очереди

Атрибут maxQueueLength элемента clientNotification. Если атрибут не задан, по умолчанию используется значение 10000.

Свойство MaxQueueLength класса DataCacheNotificationProperties.

Параметры безопасности

В файле конфигурации приложения свойства безопасности задаются в элементе securityProperties, который является дочерним по отношению к элементу dataCacheClient. Программным образом свойства безопасности настраиваются с помощью экземпляра класса DataCacheFactoryConfiguration, который передается в конструктор класса DataCacheFactory. Дополнительные сведения см. в разделе Методы настройки.

Параметр Расположение конфигурации XML Расположение конфигурации кода

Режим

Атрибут mode элемента securityProperties. Возможны значения Transport и None. По умолчанию используется значение Transport.

Свойство SecurityMode класса DataCacheSecurity. Возможны значения None и Transport. Затем объект DataCacheSecurity назначается свойству SecurityProperties класса DataCacheFactoryConfiguration.

Уровень защиты

Атрибут protectionLevel элемента securityProperties. Возможны значения None, Sign и EncryptAndSign. По умолчанию используется значение EncryptAndSign.

Свойство ProtectionLevel класса DataCacheSecurity. Возможны значения None, Sign и EncryptAndSign.

Параметры транспорта

В файле конфигурации приложения свойства транспорта задаются в элементе transportProperties, который является дочерним по отношению к элементу dataCacheClient. Программным образом свойства транспорта настраиваются с помощью экземпляра класса DataCacheFactoryConfiguration, который передается в конструктор класса DataCacheFactory. Дополнительные сведения см. в разделе Методы настройки.

Параметр Расположение конфигурации XML Расположение конфигурации кода

Размер буфера подключения (в байтах)

Атрибут connectionBufferSize элемента transportProperties.

Свойство ConnectionBufferSize класса DataCacheTransportProperties. Затем оно назначается свойству TransportProperties класса DataCacheFactoryConfiguration.

Максимальный размер буферного пула (в байтах)

Атрибут maxBufferPoolSize элемента transportProperties.

Свойство MaxBufferPoolSize класса DataCacheTransportProperties.

Максимальный размер буфера (в байтах)

Атрибут maxBufferSize элемента transportProperties.

Свойство MaxBufferSize класса DataCacheTransportProperties.

Максимальная задержка выходных данных (в миллисекундах)

Атрибут maxOutputDelay элемента transportProperties.

Свойство MaxOutputDelay класса DataCacheTransportProperties.

Время ожидания инициализации канала (в миллисекундах)

Атрибут channelInitializationTimeout элемента transportProperties.

Свойство ChannelInitializationTimeout класса DataCacheTransportProperties.

Время ожидания получения (в миллисекундах)

Атрибут receiveTimeout элемента transportProperties.

Свойство ReceiveTimeout класса DataCacheTransportProperties.

Пример файла конфигурации приложения

Чтобы сборки AppFabric могли считывать элементы XML в файле конфигурации приложения, необходимо включить configSections в качестве первого элемента в файл под тегом configuration. В элемент configSections необходимо включить один элемент section, сопоставленный с элементом dataCacheClient.

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

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <!--configSections must be the FIRST element -->
<configSections>
   <!-- required to read the <dataCacheClient> element -->
   <section name="dataCacheClient"
         type="Microsoft.ApplicationServer.Caching.DataCacheClientSection,
            Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, 
            Culture=neutral, PublicKeyToken=31bf3856ad364e35"
          allowLocation="true"
          allowDefinition="Everywhere"/>
</configSections>

   <dataCacheClient requestTimeout="15000" channelOpenTimeout="3000" maxConnectionsToServer="1">
      <localCache isEnabled="true" sync="TimeoutBased" ttlValue="300" objectCount="10000"/>
      <clientNotification pollInterval="300" maxQueueLength="10000"/>
      <hosts>
         <host name="CacheServer1" cachePort="22233"/>
         <host name="CacheServer2" cachePort="22233"/>
      </hosts>
      <securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
      <transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" 
                           maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" 
                           receiveTimeout="600000"/>
   </dataCacheClient>
</configuration>

См. также

Основные понятия

Настройка клиента кэша
Параметры конфигурации кластера
Устранение неполадок функций кэширования AppFabric
Использование Windows PowerShell для управления компонентами кэширования в AppFabric 1.1
Основные принципы кэширования AppFabric (кэширование в AppFabric 1.1)
Разработка клиента кэша

  2012-03-05