2010-10-06 2 views
4

Comment l'utilisation de MSMQ peut-elle contribuer à l'évolutivité et à la fiabilité? Dans le scénario d'un serveur Web à un serveur de base de données, cela aide-t-il?Avantages de l'utilisation de MS Queue

Tous les commentaires ou liens seraient grandement appréciés. Merci

EDIT: Le serveur Web exécutera WCF exposant des méthodes Web de style SOAP. Il y a aussi une possibilité, en regardant vers l'avenir, qu'il peut y avoir plusieurs serveurs Web.

Répondre

2

Les files d'attente (en particulier les files d'attente tolérantes aux pannes et persistantes) permettent la communication entre les composants et permettent en fin de compte aux lecteurs de file d'attente d'être asynchrones avec les lecteurs. Cela signifie que les lecteurs et les rédacteurs peuvent être mis à l'échelle en fonction de l'utilisation de la file d'attente.

Considérons l'exemple simple de l'entretien des requêtes Web. Si une opération lourde est poussée dans la file d'attente, un autre ensemble de composants peut lire la file d'attente et gérer la requête sans que l'auteur ne soit affecté et ainsi permettre au programme d'écoute HTTP de traiter plus de demandes. À mesure que le nombre d'éléments dans la file d'attente augmente, plus de lecteurs peuvent être mis en ligne pour les gérer. En termes de fiabilité, si la file d'attente est fiable, les messages entre les composants ne sont pas perdus, la communication est par conséquent plus fiable. Les lecteurs et les écrivains peuvent monter et descendre mais tant que les messages sont en sécurité, alors vous avez la base d'un système plus fiable que celui où les messages peuvent être perdus.

En effet, vous créez un système avec un couplage à temps d'exécution inférieur, et donc une panne à un point ne se propage pas nécessairement à l'échelle du système. Permettre d'utiliser plus efficacement les stratégies de tolérance aux pannes.

0

Oui, il existe une valeur dans un scénario de serveur Web/de base de données 1, si vous avez besoin d'un traitement asynchrone et d'une garantie raisonnable que les tâches placées sur la file seront exécutées. Il n'offre pas de haute disponibilité (le serveur exécutant MSMQ peut échouer, entre autres choses).

Fournissez des détails spécifiques à la mise en œuvre si vous souhaitez obtenir plus d'informations.

1

Le serveur Web qui parle à une base de données ne ressemble pas à un scénario dont MSMQ peut bénéficier.

Cependant, si vous avez un serveur Web, un serveur de domaine et un serveur de base de données, alors tout est différent. Dans ce cas, le serveur Web peut communiquer avec le serveur de domaine via MSMQ (avec livraison garantie et de manière transactionnelle - fiabilité). Lorsque vous introduisez des serveurs Web supplémentaires, l'architecture ne change pas un peu et l'évolutivité est atteinte.

Toujours bon à lire à propos de CQRS.