2010-03-12 5 views
3

La société pour laquelle je travaille cherche à mettre en œuvre une solution de mise en cache. Nous avons plusieurs services Web WCF hébergés et nous devons mettre en cache certaines valeurs qui peuvent être conservées et récupérées indépendamment de la session d'un client à un service. Je cherche les technologies suivantes:WCF Caching Solution - Besoin de conseils

  • Application Block Caching 4.1

  • service WCF TCP en utilisant HttpRuntime Caching

  • Memcached Win32 et le client

  • Microsoft AppFabric Caching Beta 2

Notre serveur de test est un serveur Windows Server 2003 avec IIS6, mais notre serveur de production est Windows Server 2008, donc l'une des options ci-dessus fonctionnerait (à l'exception de la mise en cache d'AppFabric sur notre serveur de test).

Quelqu'un a-t-il de l'expérience avec l'un de ces produits? Cette solution de mise en cache ne sera pas utilisée pour stocker beaucoup de données, mais elle devra être récupérée fréquemment et rapidement.

Merci d'avance.

+1

Serveur de test avec différents OS et IIS que la production? C'est dur. Quoi qu'il en soit, permettez-moi de proposer une cinquième option: la base de données en mémoire; parfait pour "tiré de fréquemment et rapidement." À bas prix, une base de données SQLite bien implémentée peut s'approcher des performances d'une base de données en mémoire pure. – Jay

Répondre

3

Nous utilisons le HttpRuntime Caching intégré dans notre application, et il fonctionne très bien.

Il est très facile à mettre en place, car il n'y a rien à installer sur vos serveurs. De plus, le passage à AppFabric Caching ne devrait pas être un gros problème plus tard. Cela dit, cela comporte également certaines limitations, notamment si vos services ne sont pas hébergés dans la même application IIS car les objets mis en cache seront dupliqués pour chacun d'entre eux. Si vous ne prévoyez pas de mettre en cache beaucoup de données et/ou si vous ne prévoyez pas de les mettre en cache pendant une longue période, ça devrait aller, car vous ne consommerez pas trop de RAM.

Vous ne semblez pas avoir de serveurs à charge équilibrée, mais dans un tel scénario, l'utilisation de la mise en cache HttpRuntime signifie également la duplication du cache sur chaque serveur. C'est le genre de choses que vous pouvez éviter avec memcached ou la mise en cache d'AppFabric ...

+0

Merci Julien. Nous utilisons HttpRuntime Caching comme une solution jusqu'à ce que AppFabric Caching sorte de la version bêta. AppFabric sera probablement notre solution ultime car elle nous fournira une solution de mise en cache lorsque nous passerons à une solution d'équilibrage de charge pour nos serveurs. – Brandon

0

Si vous n'avez pas d'exigence particulière pour la politique de cache, vous pouvez créer une méthode d'utilisation de l'interface RESTful "GET" pour les services qui ont besoin du cache, puis laisser le navigateur gérer le cache.

+0

La solution de mise en cache ne sera pas utilisée pour les résultats. Il sera utilisé pour stocker des choses comme les informations de session utilisateur et les états d'index. – Brandon

Questions connexes