Включение локального кэша Windows Server AppFabric

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

В приведенных ниже действиях описывается процесс программного включения локального кэша в клиенте кэша:

  1. Создайте экземпляр класса DataCacheLocalCacheProperties. Настройте локальный кэш с помощью передачи соответствующих значений в параметры конструктора. К ним относятся objectCount, defaultTimeout и invalidationPolicy.

  2. Передайте объект DataCacheLocalCacheProperties в конструктор нового объекта DataCacheFactory.

  3. Используйте объект DataCacheFactory, чтобы вызвать метод GetCache для создания клиента кэша, который использует локальный кэш.

Предупреждение

В данных процедурах предполагается, что вы уже подготовили среду разработки и задали ссылки на сборки кэширования AppFabric. Дополнительные сведения см. в разделе Подготовка среды разработки клиента кэша (кэширование в Windows Server AppFabric).

Создание клиента кэша со включенным локальным кэшем

  1. Создайте массив объектов DataCacheServerEndpoint, чтобы указать узлы кэша для клиента.

  2. Создайте экземпляр класса DataCacheLocalCacheProperties. Настройте локальный кэш с помощью передачи соответствующих значений в параметры конструктора.

    1. Используйте параметр objectCount для указания максимального числа объектов в локальном кэше.

    2. Используйте параметр defaultTimeout для указания объекта System.TimeSpan, определяющего время, которое объект остается в локальном кэше до того, как станет недействительным.

    3. Используйте параметр invalidationPolicy для указания способа признания локально кэшированных объектов недействительными. Задайте значение DataCacheLocalCacheInvalidationPolicy.TimeoutBased, чтобы указать, что необходимо использовать только значение времени ожидания. Задайте значение DataCacheLocalCacheInvalidationPolicy.NotificationBased, чтобы указать, что в дополнение ко времени ожидания используются уведомления кэша. Дополнительные сведения см. в разделе Клиенты кэша и локальный кэш (кэширование в Windows Server AppFabric).

  3. Если для политики недействительности выбрано значение DataCacheLocalCacheInvalidationPolicy.NotificationBased, при необходимости можно управлять интервалом опроса, то есть частотой взаимодействия клиента кэша с кластером кэша в целях обновления уведомлений для локально кэшированных объектов. Для этого создайте экземпляр класса DataCacheNotificationProperties. Настройте параметры уведомлений с помощью передачи соответствующих значений в параметры конструктора.

    1. Используйте параметр PollInterval для задания объекта System.Timespan для интервала, с которым клиент кэша проверяет наличие уведомлений кэша на кластере кэша. Обратите внимание на то, что для уведомлений кэша локальный кэш не требуется. Дополнительные сведения см. в разделе Уведомления кэша (кэширование в Windows Server AppFabric).

    2. Параметр MaxQueueLength управляет длиной очереди уведомлений, но не затрагивает локальный кэш. По умолчанию используется значение 16384.

  4. Создайте экземпляр класса DataCacheFactoryConfiguration.

  5. Настройте узлы кэша, назначив массив узлов кэша из первого действия свойству Servers объекта DataCacheFactoryConfiguration.

  6. Настройте локальный кэш, назначив созданный во втором действии объект DataCacheLocalCacheProperties свойству LocalCacheProperties объекта DataCacheFactoryConfiguration.

  7. При необходимости настройте свойства уведомлений, назначив созданный в третьем действии объект DataCacheNotificationProperties свойству NotificationProperties объекта DataCacheFactoryConfiguration.

  8. Передайте объект DataCacheFactoryConfiguration в конструктор класса DataCacheFactory.

  9. Используйте метод GetCache для получения класса DataCache на основании параметров объекта DataCacheFactoryConfiguration.

Примечание

Если для политики недействительности локального кэша выбрано значение DataCacheLocalCacheInvalidationPolicy.NotificationBased, для целевого кэша должны быть включены уведомления. Дополнительные сведения см. в разделе Использование Windows PowerShell для управления компонентами кэширования в Windows Server AppFabric.

Пример

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

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

' Declare array for cache host(s).
Dim servers(0) As DataCacheServerEndpoint
servers(0) = New DataCacheServerEndpoint("CacheServer2", 22233)
// Declare array for cache host(s).
DataCacheServerEndpoint[] servers = new DataCacheServerEndpoint[1];
servers[0] = new DataCacheServerEndpoint("CacheServer2", 22233);

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

' Set the local cache properties. In this example, it
' is timeout-based with a timeout of 30 seconds.
Dim localCacheConfig As DataCacheLocalCacheProperties
Dim localTimeout As TimeSpan = New TimeSpan(0, 0, 30)

localCacheConfig = New DataCacheLocalCacheProperties(10000, _
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
// Set the local cache properties. In this example, it
// is timeout-based with a timeout of 30 seconds.
DataCacheLocalCacheProperties localCacheConfig;
TimeSpan localTimeout = new TimeSpan(0, 0, 30);

localCacheConfig = new DataCacheLocalCacheProperties(10000, 
   localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased);

После этого создайте объект DataCacheFactoryConfiguration. Назначьте массив servers свойству Servers. Назначьте объект localCacheConfig свойству LocalCacheProperties.

' Setup the DataCacheFactory configuration.
Dim factoryConfig As DataCacheFactoryConfiguration
factoryConfig = New DataCacheFactoryConfiguration

factoryConfig.Servers = servers
factoryConfig.LocalCacheProperties = localCacheConfig
// Setup the DataCacheFactory configuration.
DataCacheFactoryConfiguration factoryConfig = 
   new DataCacheFactoryConfiguration();

factoryConfig.Servers = servers;
factoryConfig.LocalCacheProperties = localCacheConfig;

Затем передайте объект DataCacheFactoryConfiguration в конструктор класса DataCacheFactory и создайте экземпляр клиента кэша с помощью метода GetCache. В данном примере создается клиент кэша для кэша с именем NamedCache1.

' Create a configured DataCacheFactory object.
Dim mycacheFactory As DataCacheFactory
mycacheFactory = New DataCacheFactory(factoryConfig)

' Get a cache client for the cache "NamedCache1".
Dim myDefaultCache As DataCache
myDefaultCache = mycacheFactory.GetCache("NamedCache1")
// Create a configured DataCacheFactory object.
DataCacheFactory mycacheFactory = new DataCacheFactory(factoryConfig);

// Get a cache client for the cache "NamedCache1".
DataCache myDefaultCache = mycacheFactory.GetCache("NamedCache1");

Примечание

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

См. также

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

Начало работы с клиентом кэша Windows Server AppFabric
Изменение уровня ведения журнала клиента кэша (кэширование в Windows Server AppFabric)
Клиенты кэша и локальный кэш (кэширование в Windows Server AppFabric)
Основные принципы кэширования Windows Server AppFabric
Разработка клиента кэша (кэширование в Windows Server AppFabric)

Другие ресурсы

Настройка клиента кэша с помощью XML

  2011-12-05