Модель программирования (кэширование в Windows Server AppFabric)
Модель программирования Windows Server AppFabric настроена для использования шаблона программирования отдельно от кэша. Это означает, что если данные отсутствуют в кэше, то приложение, а не распределенный кэш AppFabric, должно повторно загружать данные в кэш из исходного источника данных. Код приложения использует класс DataCache, который также называется клиентом кэша, после создания его экземпляра.
Стратегия кэширования
Код приложения должен быть разработан таким образом, чтобы он мог работать независимо от кэша и не требовать постоянной доступности кэшированных данных. Так как данные в кэше не сохраняются на долгое время, существует вероятность недоступности этих данных.
Функция высокой надежности позволяет обеспечить защиту от сбоев компьютера и процессов на отдельных узлах кэша во время работы кластера. Однако в некоторых случаях весь кластер может оказаться недоступным. Например, при отключении слишком большого числа ведущих узлов будет выключен весь кластер. Дополнительные сведения см. в разделе Ведущие узлы и управление кластером (кэширование в Windows Server AppFabric).
Существует множество других причин отсутствия данных в кэше, которые могут возникнуть в коде: может истечь срок хранения элемента кэша или элемент может быть извлечен, сервер кэша может быть перезагружен, служба кэша может быть перезапущена или кластер кэша может быть случайно остановлен. Независимо от причины пользовательский код приложения должен получать доступ к базе данных (или другому источнику данных), если кэшированный объект будет недоступен.
Клиенты кэша
Чтобы сохранять данные в кэше, используйте метод GetCache или метод GetDefaultCache для возвращения объекта DataCache. После создания экземпляра этот объект DataCache называется клиентом кэша.
Примечание
В целях повышения производительности рекомендуется уменьшить число объектов DataCacheFactory, создаваемых в приложении, поддерживающем кэширование. Сохраняйте объект DataCacheFactory в переменной, доступной для всех частей приложения, использующего клиенты кэша.
Существует множество параметров, доступных для настройки поведения клиента кэша. Можно указать эти параметры конфигурации программно или с помощью файла конфигурации приложения, а также используя оба подхода. Дополнительные сведения о клиентах и доступных параметрах конфигурации приложений см. в разделах Клиенты кэша и локальный кэш (кэширование в Windows Server AppFabric) и Параметры конфигурации приложения (кэширование в Windows Server AppFabric).
Несколько клиентов кэша могут одновременно получать доступ к одному кэшу. Приложения, работающие на разных компьютерах, могут обеспечивать это путем создания экземпляров клиента кэша, который настраивается для использования одного кэша. В следующем примере кода демонстрируется эта концепция. Обратите внимание, что комментарии используются для идентификации кода, выполняющегося в различных экземплярах клиентов кэша.
'Each application has a similar GetCache method call
Dim myCacheFactory As DataCacheFactory = New DataCacheFactory()
Dim catalog As DataCache = myCacheFactory.GetCache("catalog")
'One cache client saves an object to the catalog named "toy101"
Call catalog.Put("toy101", New ToyObject("toy101", "Playschool"))
'The same or different cache client retrieves the object
Dim toy As ToyObject = CType(catalog.Get("toy101"), ToyObject)
'The same or a different cache client removes the object
catalog.Remove("toy101")
//Each application has a similar GetCache method call
DataCacheFactory myCacheFactory = new DataCacheFactory();
DataCache catalog = myCacheFactory.GetCache("catalog");
//One cache client saves an object to the catalog named "toy101"
catalog.Put("toy101", new ToyObject("toy101", "Playschool"));
//The same or different cache client retrieves the object
ToyObject toy = (ToyObject)catalog.Get("toy101");
//The same or a different cache client removes the object
catalog.Remove("toy101");
См. также
Основные понятия
Схема физической архитектуры кэширования Windows Server AppFabric
Схема логической архитектуры кэширования Windows Server AppFabric
Разработка клиента кэша (кэширование в Windows Server AppFabric)
2011-12-05