2010-07-22 4 views
2

Je développe actuellement un service Web WCF REST qui sera exécuté sur Microsoft Azure. Pour limiter le nombre de requêtes par adresse IP afin d'éviter les abus, je stocke actuellement l'adresse IP et le délai d'attente en utilisant le cache ASP.NET.Service WCF: Cache ASP.NET ou SQL

Cette méthode fonctionne très bien, mais comme les instances de plusieurs machines virtuelles avec Azure ne partagent pas un seul cache, les demandes peuvent être réparties entre différentes machines virtuelles et être effacées si une machine virtuelle est réinitialisée. Je ne pense pas que ce soit un problème majeur, mais comme je stocke déjà des informations utilisateur dans une base de données SQL Azure et authentifie les utilisateurs utilisant le service WCF, serais-je mieux d'utiliser la base de données au lieu du cache ASP.NET?

Tout adive serait vraiment utile.

Répondre

2

Qu'en est-il de l'utilisation d'une approche hybride? Vous pouvez le stocker dans la base de données SQL en plus de le mettre dans votre cache. Puis quand ils frappent une instance différente, ils sont mis dans le cache avec le temps qui a été stocké dans la base de données. Minimise les allers-retours à la base de données et met l'information à la disposition de tous les serveurs.

+0

Merci pour l'idée. – Bram

1

Vous devez décider quand le seuil est acceptable.
Les données du cache seront plus rapides, mais il y a un risque qu'elles ne représentent pas les données actuelles. Lorsque l'extraction des données de la base de données est récente, le retour à la base de données prend du temps.

+0

Merci pour l'aide. – Bram

Questions connexes