2010-10-18 6 views
6

je une application qui se compose de trois parties:MSMQ par rapport à SQL Server Service Broker

  • une boutique web front-end pour les utilisateurs finaux et les partenaires commerciaux
  • un système de gestion des commandes pour gérer les commandes
  • un système de base de données techniques pour gérer tous les détails techniques de ces produits et services commandés

Aujourd'hui, ces systèmes (qui sont sur des serveurs distincts et développés par t séparés eams) interopérer en utilisant les services web WCF.

Cette configuration fonctionne très bien tant que tous les serveurs sont ouverts. Ce qu'ils ne sont pas - pas toujours, de toute façon. J'ai donc commencé à chercher à utiliser MSMQ ou SQL Server Service Broker pour gérer la communication entre ces systèmes - du moins quand il s'agit de la boutique Web stockant une commande dans le système de gestion des commandes, ou du système de gestion des commandes envoyer les données techniques au système de base de données de technologie. J'espère pouvoir atteindre plus de fiabilité dans l'ensemble du système - les utilisateurs peuvent toujours passer des commandes et ceux-ci ne seront pas perdus, même si le backend de gestion des commandes est temporairement indisponible.

Mais la grande question est: MSMQ ou Service Broker ?? Les trois systèmes sont basés sur Windows et .NET et utilisent déjà SQL Server sur trois serveurs distincts.

Quelqu'un at-il des faits concrets et réels qui parlent pour (ou contre) l'une de ces deux technologies? Quelles sont vos expériences réelles avec ces deux ensembles de technologies? Avantages et inconvénients. Si vous pouviez repartir de zéro, lequel choisiriez-vous? Ou choisiriez-vous autre chose (quoi?) Entièrement?

Répondre

5

J'ai utilisé les deux, dans des situations différentes, tout aussi bien. Ma préférence est vraiment basique: utilisez SQL Service Broker si l'événement d'envoi de message est déclenché à partir d'un événement de base de données; Utilisez la file d'attente de messages si l'événement est dans le code. Cette préférence est basée simplement sur la configuration de la plate-forme qui déclenchera l'événement.

+0

OK, merci pour ces idées! –