2009-10-29 4 views
6

J'ai une application ASP.NET qui utilise largement l'API de cache ASP.NET pour mettre en cache les données couramment utilisées. En outre, j'utilise la dépendance du cache sql basé sur l'interrogation pour suivre l'expiration. L'inconvénient de la conception actuelle est que, dans l'environnement de batterie de serveurs Web, chaque serveur Web possède son propre cache de données qui n'est pas partagé entre les serveurs.Extension du cache de données ASP.NET à partager sur une batterie de serveurs Web

Y a-t-il un moyen de simplement migrer le code pour partager le cache de données sur plusieurs serveurs?

J'ai pensé à utiliser memcached mais cela ne fonctionnerait pas avec la dépendance du cache SQL, n'est-ce pas?

D'autres solutions?

Répondre

2

Vous pouvez utiliser les options suivantes: -

  1. Utilisez l'approche décrite ici pour synchroniser les données entre les fermes web - http://www.eggheadcafe.com/articles/20030420.asp

  2. Utiliser l'approche de la mise en cache distribuée

  3. Utilisation du cache de la bibliothèque de l'entreprise .

2

Il me semble que Windows Server AppFabric est exactement ce que vous recherchez. (AKA "Velocity"). De l'introductory documentation:

Windows Server AppFabric fournit une application distribuée en mémoire plate-forme de cache pour le développement évolutifs, disponibles et applications haute performance. AppFabric fusionne la mémoire sur plusieurs ordinateurs pour donner une seule vue cache unifiée aux applications. Les applications peuvent stocker n'importe quel objet CLR sérialisable sans en se souciant de l'endroit où l'objet est stocké . L'évolutivité peut être réalisée par simplement en ajoutant plus d'ordinateurs sur demande . Le cache permet également de stocker des copies de données à sur le cluster , protégeant ainsi les données contre les échecs . Il fonctionne comme un service accédé sur le réseau. En outre , Windows Server AppFabric offre une intégration transparente avec ASP.NET qui permet d'objets de session ASP.NET à stocker dans le cache distribué sans avoir à écrire aux bases de données. Cela augmente les performances et l'évolutivité des applications ASP.NET.

Questions connexes