Qu'utilisez-vous pour la mise en cache distribuée dans les batteries de serveurs Web exécutant ASP.NET?

StackOverflow https://stackoverflow.com/questions/103601

Question

Je suis curieux de savoir ce que les autres utilisent dans cette situation. Je connais quelques-unes des options disponibles, comme un port memcached ou ScaleOutSoftware. Les ports membres ne semblent pas être activement travaillés (corrigez-moi si je me trompe). ScaleOutSoftware est trop cher pour moi (je ne doute pas que cela en vaut la peine). Cela ne veut pas dire que je ne veux pas entendre parler de personnes utilisant memcached ou ScaleOutSoftware. Je ne fais que déclarer ce que je "sais". à ce stade.

Ma question est donc la suivante: pour ceux qui utilisent activement l’utilisation de la mise en cache distribuée, qu’utilisez-vous, en êtes-vous satisfait et que devriez-vous rechercher?

Je vais très bientôt passer à deux serveurs ... les deux seront au même endroit. J'utilise assez souvent (mais avec précaution) la mise en cache pour réduire la charge sur mon serveur de base de données.

Modifier: j'ai téléchargé la solution de Scaleout Software. J'ai codé pour cela et cela semble fonctionner vraiment bien. Je dois juste décider si mon portefeuille va se séparer de l'argent pour cela. :) Quelqu'un a-t-il eu des expériences positives ou négatives avec ScaleoutSoftware?

Modifier à nouveau: Cela fait un petit bout de temps que j'ai demandé cela? Avez-vous d'autres idées à ce sujet? Nous avons fini par acheter la solution à ScaleOutSoftware et nous en sommes satisfaits, mais je suis curieux de savoir ce que les autres font.

Était-ce utile?

La solution

Nous utilisons actuellement un cache incroyablement simple que j'ai écrit en quelques heures, basé sur la ré-hébergement du cache ASP.NET dans un service Windows ( plus d'informations et le code source ici ). Je ne prétends pas que ce soit aussi optimisé que Memcached, mais nous cherchions simplement quelque chose de simple et gratuit jusqu’à ce que Velocity arrive, et il a très bien résisté même sous une charge assez lourde.

Cela dépend de nos préférences personnelles pour les composants essentiels - c’est-à-dire ceux qui affectent la disponibilité ou non du site - qu'ils soient (a) pris en charge par un fournisseur offrant une assistance rapide et de haute qualité, ou ) écrit par nous afin que si quelque chose ne va pas, nous pouvons le réparer rapidement. L'open source est très bien, et nous utilisons effectivement quelques logiciels libres, mais si votre site est hors ligne, malheureusement, les groupes de discussion et autres ne disposent pas d'un contrat SLA d'une heure, et ce n'est pas parce que c'est un logiciel libre ne signifie pas que vous avez la compréhension nécessaire ou la capacité de le réparer vous-même.

Autres conseils

Microsoft a un produit en attente nommé Velocity . Il est toujours en CTP et avance lentement, mais il semble que ce sera très bien. Nous allons le battre dans un avenir proche pour voir comment il gère ce que nous voulons qu'il fasse (> 2 millions de lectures / écritures à l'heure). Reviendra avec des résultats.

Il existe un projet Open Source (LGPL) 100% natif et bien documenté appelé Cache partagé . . On dirait que ce n'est pas encore mentionné dans SO, mais c'est prometteur et devrait pouvoir faire ce que la plupart des gens attendent d'un cache distribué. Il prend même en charge différentes stratégies telles que la mise en cache distribuée ou répliquée, etc.

Je mettrai à jour ce message avec plus de détails dès que j'aurai eu l'occasion de l'essayer sur un vrai projet.

Nous utilisons le port memcached pour Windows et nous en sommes très satisfaits. L'API client enyim.com memcached est très facile à utiliser. C'est aussi l'open source, ce qui est un gros avantage, si vous me le demandez.

Nous utilisons maintenant cette configuration dans une application Web de production et cela a beaucoup aidé à améliorer ses performances.

Il existe un excellent wrapper / port .NET ici sur Codeplex. Awesomesauce!

Nous utilisons memcached avec la bibliothèque enyim dans un environnement de production (www.funda.nl). Fonctionne très bien, très satisfait, mais nous avons constaté une augmentation substantielle de l’utilisation de la CPU chez les clients. Probablement en raison de la sérialisation / désérialisation en cours. Nous faisons environ 1000 lectures par seconde.

NCache a été testé et testé par plus de 100 clients dans le monde entier. Son

un produit riche en fonctionnalités qui vous permet de stocker l'état de session de manière redondante et hautement disponible, vous permet de partager des données

au sein de l'entreprise, ainsi que le pontage pour la communication WAN, qui agit essentiellement comme une structure de données et vous permet de créer un niveau de mise en cache élastique de sorte que

votre application évolue, vous pouvez ajouter des serveurs au cache et améliorer davantage les performances.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top