Partager via


Notifications de cache (mise en cache d'AppFabric 1.1)

Les notifications de cache de Microsoft AppFabric 1.1 pour Windows Server permettent aux applications de recevoir des notifications asynchrones lorsque des opérations de cache surviennent sur le cluster de cache. Elles permettent également d'effectuer une invalidation automatique des objets mis en cache localement. Pour plus d'informations, consultez la page Expiration et éviction (mise en cache d'AppFabric 1.1).

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. Cette rubrique décrit ce processus en détails.

Notes

Pour utiliser les notifications de cache, vous devez les activer sur un cache nommé à l'aide de la commande New-Cache ou Set-CacheConfig de Windows PowerShell à partir de l'outil d'administration du cache basé sur Windows PowerShell.

Déclenchement des notifications de cache

Comme indiqué dans l'illustration suivante, les modifications apportées aux régions et aux objets mis en cache (ou éléments du cache) peuvent déclencher des notifications de cache.

Modifications qui déclenchent 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 du 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 région du cache. AppFabric permet de réduire l'étendue de vos notifications du niveau du cache au niveau de la région et de l'élément. Comme illustré dans le schéma ci-dessous, l'étendue de la notification que vous sélectionnez lors de l'ajout d'un rappel a des répercussions significatives sur les notifications de cache reçues.

Étendue de notification du cache

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 la notification, 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.

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 d'une 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.

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é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é.

Fréquence d'interrogation

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.

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.

Perte de notifications

La mémoire des hôtes de cache ne peut contenir qu'une certaine quantité d'opérations de cache. En fonction de la charge du système, 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 la rubrique Ajout d'un rappel de notification d'échec.

Perte du cluster de cache

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.

Notes

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.

Activation des notifications de cache

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 à l'aide de la commande New-Cache et du commutateur NotificationsEnabled. Par défaut, elle est désactivée lorsque vous créez un cache. Pour plus d'informations sur la modification des paramètres de configuration du cache, consultez la rubrique Modification des paramètres de configuration du cache avec Windows PowerShell.

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.

Utilisation des notifications de cache

Une fois les notifications de cache activées, trois tâches doivent ê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 la rubrique Utilisation des notifications de cache.

Voir aussi

Concepts

Diagramme de l'architecture physique de mise en cache d'AppFabric (mise en cache d'AppFabric 1.1)
Diagramme de l'architecture logique de mise en cache d'AppFabric (mise en cache d'AppFabric 1.1)
Développement d'un client de cache

  2012-03-05