Exporter (0) Imprimer
Développer tout

Notifications (In-Role Cache pour Azure Cache)

Mis à jour: juillet 2010

noteRemarque
Pour obtenir des conseils sur le choix de l'offre Azure Cache appropriée pour votre application, consultez Choix de l'offre Azure Cache appropriée.

Azure fournit des notifications de cache qui permettent aux applications de recevoir des notifications asynchrones lorsque diverses opérations de cache surviennent sur le cluster de cache. Elles permettent é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.

Les notifications ne sont prises en charge que dans le cadre de l'utilisation de la Cache dans le rôle dans des rôles. Les notifications ne sont pas prises en charge avec la Service Caching partagé. Cela signifie également que vous ne pouvez pas utiliser les notifications pour invalider le cache local dans la Service Caching partagé.

Ces opérations de cache sont définies par les membres de la classe DataCacheOperations.

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 du cache ;

  • RemoveRegion : lorsqu'une région est supprimée du cache.

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.

noteRemarque
À 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.

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 lorsque des opérations de cache basées sur une région et un élément surviennent sur tous les éléments et régions ;

  • AddRegionLevelCallback : lorsque vous souhaitez être averti lorsque des opérations de cache basées sur une région et un élément surviennent sur une région spécifique ;

  • AddItemLevelCallback : lorsque vous souhaitez être averti lorsque des opérations de cache basées sur un élément surviennent sur un élément spécifique.

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 des é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 paramètre version. Cet objet DataCacheItemVersion correspond à la version de l'objet qui a déclenché l'événement d'élément. La méthode CompareTo permet de comparer les versions pour déterminer les opérations de cache qui surviennent en premier.

noteRemarque
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éterminer l'ordre en comparant des versions dotées de clés différentes. La méthode CompareTo peut renvoyer un résultat, mais celui-ci est seulement valide pour les versions de la même clé.

Lorsque vous utilisez les notifications de cache, votre application interroge régulièrement le cluster de 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 le faire par programme à l'aide de la propriété NotificationProperties de l'objet DataCacheFactoryConfiguration.

La mémoire des hôtes de cache ne peut contenir qu'une certaine quantité d'opérations de cache. 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 des hôtes de cache. Cette absence de notification peut également se produire en cas de perte de données due à une défaillance du serveur de cache alors que le reste du cluster est toujours en cours d'exécution. 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 How to: Add a Failure Notification Callback.

Il est important d'opérer une distinction entre la perte de notifications et la perte du cluster de cache. Si votre application perd une ou plusieurs notifications, elle peut en être avertie par une notification d'échec. Si le cluster de cache entier est arrêté, redémarré ou perdu, aucune notification n'est déclenchée. Au lieu de cela, le client de cache lèvera des exceptions lors de la prochaine tentative d'utilisation du cache si celui-ci n'est pas en mesure de se connecter au cluster. Les événements liés à des clusters de cache, tels que la création ou la suppression du cache, ne sont pas signalés par des notifications. Si le cache est supprimé du serveur après l'enregistrement des notifications, l'envoi de notifications est tout simplement interrompu. Il est impossible de différencier un cache inexistant et des opérations non exécutées sur un cache.

noteRemarque
Les notifications de cache signalent uniquement les modifications de données apportées aux régions et éléments de cache au sein du cluster, et non les événements du cluster lui-même.

La fonctionnalité de notification de cache est configurée au niveau du cache dans les paramètres de configuration du cluster. En tant que propriété du cache, vous pouvez l'activer lorsque vous créez le cache pour la première fois. Par défaut, elle est désactivée lorsque vous créez un cache.

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. Pour définir une autre fréquence, utilisez l'élément clientNotification du fichier de configuration d'application XML ou spécifiez la fréquence souhaitée par programme à l'aide de la propriété NotificationsProperties de l'objet DataCacheFactoryConfiguration.

Une fois les notifications de cache activées, trois tâches peuvent être effectuées : ajout des 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.

Voir aussi

Afficher:
© 2014 Microsoft