Partager via


Modèle de programmation (mise en cache de Windows Server AppFabric)

Le modèle de programmation de Windows Server AppFabric est personnalisé pour le mode de programmation de type cache-aside. Si vos données ne sont pas situées dans le cache, votre application, et non le cache distribué d'AppFabric, doit recharger celles-ci dans le cache à partir de la source de données d'origine. Le code de l'application utilise la classe DataCache, également appelée client de cache, après son instanciation.

Stratégie de mise en cache

Le code de l'application doit être conçu de manière à ce qu'il puisse fonctionner indépendamment du cache et ne requière pas que les données en cache soient toujours disponibles. Comme les données du cache ne persistent pas de manière durable, il se peut qu'elles soient indisponibles.

La fonctionnalité de haute disponibilité contribue à la protection contre les défaillances d'ordinateur et de traitement d'hôtes de cache individuels lorsque le cluster est en cours d'exécution. Il peut néanmoins y avoir des scénarios où le cluster entier tombe en panne. Par exemple, si un ou plusieurs hôtes principaux tombent en panne, le cluster entier s'arrête. Pour plus d'informations, consultez la rubrique Hôtes principaux et gestion du cluster (mise en cache de Windows Server AppFabric).

Votre code peut rencontrer une absence dans le cache pour de nombreuses autres raisons : il se peut que l'élément de cache ait expiré ou été supprimé, que le serveur ou le service cache ait été redémarré, ou que le cluster de cache ait été redémarré accidentellement. Quelle que soit la raison, si l'objet mis en cache n'est pas disponible, votre code d'application doit pouvoir accéder à la base de données (ou à une autre source de données).

Clients de cache

Pour stocker des données dans le cache, utilisez la méthode GetCache ou la méthode GetDefaultCache pour renvoyer un objet DataCache. Une fois instancié, cet objet DataCache est désigné comme client de cache.

Notes

Il est recommandé de réduire le nombre d'objets DataCacheFactory créés dans une application prenant en charge le cache afin d'optimiser les performances. Stockez l'objet DataCacheFactory dans une variable accessible à toutes les parties de l'application qui utilisent des clients de cache.

De nombreuses options sont disponibles pour configurer le comportement du client de cache. Vous pouvez spécifier ces paramètres de configuration par programme, avec un fichier de configuration d'application, ou encore en utilisant les deux approches. Pour plus d'informations sur les clients de cache et les paramètres de configuration d'application disponibles, consultez les rubriques Clients de cache et cache local (mise en cache de Windows Server AppFabric) et Paramètres de configuration de l'application (mise en cache de Windows Server AppFabric).

Plusieurs clients de cache peuvent accéder à un seul cache simultanément. Des applications s'exécutant sur différents ordinateurs peuvent faire cela en instanciant un client de cache configuré pour utiliser le même cache. L'exemple de code suivant illustre ce concept. Notez les commentaires utilisés pour identifier le code exécuté sur les différentes instances de client de cache.

'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");

Voir aussi

Concepts

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

  2011-12-05