Продажи: 1-800-867-1389

Уведомления для управляемой службы кэша Azure

Обновлено: Сентябрь 2014 г.

noteПримечание
Руководство по выбору правильного предложения службы кэша Azure см. в разделе Какой кэш Azure подходит мне лучше всего?.

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

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

noteПримечание
Уведомления доступны для размеров кэша Standard и Premium, но не доступны для размера кэша Basic. Дополнительные сведения см. в разделе Предложения кэша для управляемой службы кэша Azure.

Эти операции кэша определяются членами класса DataCacheOperations.

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

  • CreateRegion: при создании области в кэше.

  • ClearRegion: при очистке области в кэше.

  • RemoveRegion: при удалении области из кэша.

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

  • AddItem: при добавлении элемента в кэш.

  • ReplaceItem: при замене элемента в кэше.

  • RemoveItem: при удалении элемента из кэша.

noteПримечание
Сами по себе эти операции над элементами не зависят от областей. Можно ограничить область уведомлений для обратного вызова определенной областью. Эта возможность рассматривается в разделе "Область уведомлений" данного документа.

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

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

Чтобы задать область уведомления, выберите один из следующих трех методов для добавления обратного вызова уведомления кэша:

  • AddCacheLevelCallback: если требуется получать уведомления об операциях кэша для областей и элементов, выполняемых над всеми областями и элементами.

  • AddRegionLevelCallback: если требуется получать уведомления об операциях кэша для областей и элементов, выполняемых над отдельной областью.

  • AddItemLevelCallback: если требуется получать уведомления об операциях кэша для элементов, выполняемых над отдельным элементом.

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

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

Сведения о версии для событий элементов в форме объекта DataCacheItemVersion передаются методу, вызванному уведомлением кэша, в параметре version. Этот объект DataCacheItemVersion соответствует версии объекта, вызвавшего событие элемента. С помощью метода CompareTo можно сравнить версии, чтобы определить, какие операции кэша были выполнены раньше.

noteПримечание
Сравнение версий имеет смысл только при сравнении версий одного и того же элемента, заданного с одним и тем же ключом. Нельзя определить порядок, сравнивая версии с разными ключами; метод CompareTo может вернуть результат, но он будет действителен только для версий с одним и тем же ключом.

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

Интервал опроса задается в секундах в параметрах конфигурации приложения. Чтобы задать интервал, можно использовать атрибут pollInterval элемента clientNotifications в файле конфигурации приложения Можно также указать определенный интервал опроса программными средствами с помощью свойства NotificationProperties объекта DataCacheFactoryConfiguration

Кэш Microsoft Azure могут хранить в памяти лишь определенное количество операций кэша. Некоторые клиенты кэша могут не получить уведомления до их усечения в очередях уведомлений. Клиенты кэша также могут пропускать уведомления при утере данных в результате сбоя кэша. В этих случаях клиент кэша может обнаружить, что он пропустил некоторые уведомления кэша, с помощью уведомлений об ошибках. Приложение может добавить обратный вызов для получения уведомлений об ошибках с помощью метода AddFailureNotificationCallback. Дополнительные сведения см. в разделе How to: Add a Failure Notification Callback.

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

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

Уведомления настраиваются на уровне именованных кэшей на портале управления, на вкладке "Настройка". По умолчанию для уведомлений задан параметр Отключено.

Уведомления кэша для службы кэша Windows Azure

Параметры конфигурации приложения не требуются для добавления обратного вызова с целью получения уведомлений кэша. Можно использовать параметры конфигурации приложения для задания конкретного интервала опроса. По умолчанию интервал опроса составляет 300 секунд. Если нужно задать другое значение, используйте элемент clientNotification в XML-файле конфигурации приложения или задайте интервал программными средствами через свойство NotificationsProperties объекта DataCacheFactoryConfiguration.

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

См. также

Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв
Корпорация Майкрософт проводит интернет-опрос, чтобы выяснить ваше мнение о веб-сайте MSDN. Если вы желаете принять участие в этом интернет-опросе, он будет отображен при закрытии веб-сайта MSDN.

Вы хотите принять участие?
Показ:
© 2015 Microsoft