Notifications pour service de cache géré Azure
Important
Microsoft recommande tous les nouveaux développements à l’aide du Cache Redis Azure. Pour obtenir de la documentation et des conseils actuels sur le choix d’une offre Azure Cache, consultez Quelle offre Azure Cache est adaptée à moi ?
Microsoft Azure Cache offre des notifications de cache qui permettent à vos applications de recevoir des notifications asynchrones lorsqu’une variété d’opérations de cache se produisent sur un cache nommé. Elles fournissent également l'invalidation automatique des objets mis en cache localement.
Pour recevoir des notifications de cache asynchrones, ajoutez un rappel de notification de cache dans votre application. Lorsque vous ajoutez un rappel, vous définissez les types d'opérations de cache qui déclenchent une notification de cache, ainsi que la méthode de votre application qui doit être appelée lorsque des opérations spécifiques surviennent. Un cache nommé doit accepter et activer les notifications de cache.
Notes
Les notifications sont disponibles dans les offres de cache Standard et Premium, mais pas dans l'offre Basic. Pour plus d’informations, consultez Offres de cache pour Azure Service de cache géré.
Déclenchement des notifications de cache
Ces opérations de cache sont définies par les membres de la classe DataCacheOperations .
Opérations de région
Votre application peut recevoir des notifications de cache lorsque les opérations de cache suivantes surviennent sur une région :
CreateRegion : lorsqu’une région est créée dans le cache.
ClearRegion : lorsqu’une région est effacée dans le cache.
RemoveRegion : lorsqu’une région est supprimée du cache.
Opérations d'élément
Votre application peut recevoir des notifications de cache lorsque les opérations de cache suivantes surviennent sur un objet mis en cache (ou élément du cache) :
AddItem : lorsqu’un élément est ajouté au cache.
ReplaceItem : lorsqu’un élément est remplacé dans le cache.
RemoveItem : lorsqu’un élément est supprimé du cache.
Notes
À elles seules, ces opérations d'élément ne dépendent pas du fait qu'elles surviennent dans une région ou non. Vous pouvez choisir de limiter l'étendue de notification de votre rappel à une région spécifique. Ce sujet est abordé dans la section « Étendue de notification » du présent document.
Étendue de notification
En fonction de l'activité et des besoins de l'application, vous ne vous intéresserez peut-être pas aux événements issus de chaque objet et de chaque région du cache entier. Vous pouvez réduire l'étendue de vos notifications du niveau du cache au niveau de la région et de l'élément. L'étendue de notification que vous sélectionnez lors de l'ajout d'un rappel a des répercussions significatives sur les notifications de cache que vous recevez.
Au niveau du cache, votre application peut être notifiée de toutes les opérations de cache issues de l'ensemble des objets et régions du cache. Au niveau de la région, votre application est notifiée uniquement des opérations de cache issues d'une région spécifique et des objets associés. Au niveau de l'élément, votre application est notifiée uniquement des opérations de cache appartenant à un seul objet.
Pour spécifier l'étendue de notification souhaitée, choisissez l'une des trois méthodes d'ajout d'un rappel de notification de cache :
AddCacheLevelCallback : lorsque vous souhaitez être averti des opérations de cache basées sur des régions et des éléments qui se produisent sur toutes les régions et éléments.
AddRegionLevelCallback : lorsque vous souhaitez être averti des opérations de cache basées sur des régions et des éléments qui se produisent sur une région spécifique.
AddItemLevelCallback : lorsque vous souhaitez être averti des opérations de cache basées sur des éléments qui se produisent sur un élément spécifique.
Ordre des notifications
L'ordre des notifications reçues par le client de cache est assuré dans le contexte d'une seule région. Par exemple, supposons que vous ayez créé une région nommée RegionA
. Dans la mesure où toutes les données d'une zone de cache sont limitées à la même région, toutes les opérations de cache appartenant à la RegionA
(étendue de notification au niveau de la région) arrivent dans le client de cache dans l'ordre adéquat les unes par rapport aux autres. Les opérations de cache basées sur une région et un élément qui surviennent sur d'autres hôtes de cache ne sont pas assurées d'arriver dans l'ordre approprié par rapport aux opérations qui se sont produites dans la RegionA
.
Pour des raisons de performances, l'ordre des notifications impliquant plusieurs régions ou objets non stockés dans la même région ne peut pas être assuré.
Les informations de version pour les événements d’élément, sous la forme de l’objet DataCacheItemVersion , sont transmises à la méthode appelée par la notification de cache avec le version
paramètre. Cet objet DataCacheItemVersion correspond à la version de l’objet qui a déclenché l’événement d’élément. À l’aide de la méthode CompareTo , vous pouvez comparer les versions pour déterminer les opérations de cache qui ont été effectuées en premier.
Notes
Les comparaisons de versions n'ont de sens que lorsqu'elles comparent des versions du même élément spécifiées avec la même clé. Il n’est pas possible de déduire l’ordre en comparant les versions de différentes clés; La méthode CompareTo peut retourner un résultat, mais le résultat n’est valide que pour les versions de la même clé.
Fréquence d'interrogation
Lorsque vous utilisez les notifications de cache, votre application interroge régulièrement le cache pour vérifier si de nouvelles notifications sont disponibles. Par défaut, cette fréquence d'interrogation est de 300 secondes. Les applications qui écrivent fréquemment peuvent définir cette fréquence sur une valeur plus petite, mais pour les caches qui ne changent pas souvent, un intervalle plus large peut s'avérer préférable. La fréquence par défaut de 300 secondes est adaptée à la plupart des caches généraux.
Elle est spécifiée en unités de secondes dans les paramètres de configuration de l'application. Pour indiquer une fréquence spécifique, vous pouvez utiliser l'attribut pollInterval
de l'élément clientNotifications
dans le fichier de configuration de l'application. Vous pouvez également spécifier un intervalle d’interrogation spécifique par programmation avec la NotificationProperties
propriété de l’objet DataCacheFactoryConfiguration .
Perte de notifications
Microsoft Azure Cache ne peut contenir qu’une certaine quantité d’opérations de cache en mémoire. Il est possible que certains clients de cache ne reçoivent pas de notifications tant qu'ils n'ont pas été tronqués dans les files d'attente de notifications. Cette absence de notification peut également se produire en cas de perte de données due à une défaillance du cache. Dans ce cas, votre client de cache peut découvrir qu'il n'a pas reçu certaines notifications de cache par le biais d'une notification d'échec. Votre application peut ajouter un rappel pour recevoir des notifications d’échec à l’aide de la méthode AddFailureNotificationCallback . Pour plus d’informations, consultez Guide pratique pour ajouter un rappel de notification d’échec
Perte du cache
Il est important d'opérer une distinction entre la perte de notifications et la perte du cache. Si votre application perd une ou plusieurs notifications, elle peut en être avertie par une notification d'échec. En cas de suppression du cache entier, le client de cache envoie des exceptions lorsque vous réessayez d'utiliser le cache, car il ne peut pas se connecter au point de terminaison du cache. Les événements de cache, tels que la création ou la suppression d'un cache nommé, ne sont pas signalés par des notifications. En cas de suppression d'un cache nommé après des notifications d'enregistrement, la réception de notifications est interrompue. Il est impossible de différencier un cache nommé inexistant et des opérations non exécutées sur un cache nommé.
Notes
Les notifications de cache signalent uniquement les modifications de données apportées aux régions et éléments de cache, et non les événements de rapport du cache lui-même.
Activation des notifications de cache
Les notifications sont configurées au niveau du cache nommé dans le portail de gestion sous l'onglet Configurer de Cache. Le paramètre par défaut pour les notifications est Désactivées.
Aucun paramètre de configuration de l'application n'est nécessaire pour ajouter un rappel pour la réception des notifications de cache. Vous pouvez utiliser les paramètres de configuration de l'application pour spécifier une fréquence d'interrogation spécifique. Par défaut, celle-ci est de 300 secondes. Si vous souhaitez une durée différente, utilisez l’élément clientNotification
dans le fichier de configuration d’application XML ou spécifiez votre intervalle souhaité par programmation avec la NotificationsProperties
propriété de l’objet DataCacheFactoryConfiguration .
Utilisation des notifications de cache
Une fois les notifications de cache activées, il existe trois tâches liées à l’utilisation des notifications de cache : ajout de rappels de notification de cache, ajout d’un rappel de notification d’échec et suppression des rappels de notification de cache. Les procédures correspondantes sont décrites dans le reste de cette documentation.