2012-08-23 2 views
1

Présentation
J'ai récemment créé un peu d'applications au sein de la même solution à l'aide des outils de conception NServiceBus. Tout cela a bien fonctionné car cela m'a permis de tout garder à un niveau fixe. Ce que j'ai remarqué, c'est que l'outil semble vouloir garder tous les messages, les commandes et les événements dans leur propre assemblage à travers les services que j'ai créés.l'envoi de plusieurs messages de NServiceBus

Tenir compte de la configuration suivante:
Nom de la solution: SociétéTest
services créés: TestCompany.Sales, TestCompany.Finance, TestCompany.Monitoring

Le haut créent un ensemble TestCompany.InternalMessages et le service de surveillance est essentiellement un point central où toutes les erreurs qui ont pu se produire sont consignées. J'aimerais que les autres services puissent simplement envoyer un message.

Problème
Ce qui me préoccupe dans ce cas est que je voudrais le service de vente pour envoyer un message au service des finances ainsi qu'une erreur à la surveillance si elle se produisait. Dans la configuration d'unicastbus, vous entrez dans l'assemblage et sa destination, mais j'aimerais essentiellement entrer des destinations différentes pour différents messages dans l'assemblage. Je sais que je pourrais très bien créer ma propre assemblée et lui transmettre les messages, mais cela semble aller à l'encontre de ce que le concepteur essaie de me faire avancer. Aucune suggestion?

Mise à jour:

Je crois que les problèmes que je vais avoir à traiter sont peu en rapport avec les modèles de modélisation chemin sont installés. J'ai remarqué qu'ils ne fonctionnaient pas tout à fait pour moi car je ne pouvais pas ajouter de composants sur le concepteur de point final et je ne pouvais pas faire de clic droit sans recevoir une exception de référence nulle. Supprimer et réinstaller ne semble pas résoudre le problème.

+0

Pourquoi ne vous avez pas seulement le service de surveillance de l'usage de la file d'attente d'erreur comme sa file d'attente d'entrée et le journal des messages tels qu'ils apparaissent, de cette façon le reste de vos services ne seront pas avoir une dépendance à l'égard du service de surveillance. – stephenl

+0

Un message apparaissant dans une file d'erreurs ne fournit pas vraiment de raison de savoir pourquoi il existe en premier lieu. Les messages envoyés fournissent des informations telles que la trace de la pile et sa source. – Ryan

+0

toutes ces informations est disponible pour vous en en-tête du message a échoué dans le errorq –

Répondre

1

La raison pour laquelle nous sommes allés avec cette approche dans les outils de modélisation est que les performances de Visual Studio dégrade à mesure que le nombre de projets augmente. C'est le moindre des maux dans le schéma actuel des choses. Une des choses que vous devriez regarder est les capacités d'audit intégrées car elles transmettront tous les messages circulant dans le système vers une file d'attente centrale - derrière laquelle vous pouvez mettre votre service de surveillance.

+0

Merci, c'était juste une de ces choses qui ne me convenait pas, mais au moins le raisonnement a du sens. Je vais jeter un coup d'oeil à l'idée de vérification, je n'aurais pas pensé à l'utiliser pour ça. – Ryan

0

Vous pouvez entrer une destination pour chaque message dans un ensemble. Je ne sais pas comment cela se fait via les outils de conception NServiceBus mais dans votre configuration cela ressemblerait à ceci:

<UnicastBusConfig> 
    <MessageEndpointMappings> 
     <add Messages="TestCompany.SalesMessages.NewSaleCreatedMessage" Endpoint="FinanceService" /> 
     <add Messages="TestCompany.SalesMessages.ErrorMessage" Endpoint="MonitoringService" /> 
    </MessageEndpointMappings> 
</UnicastBusConfig> 

Il est la meilleure pratique que vous créez un message Assemblée par service. (Encore une fois, je ne sais pas comment le concepteur gère ce)

+0

Salut bien que cela fonctionne son travail autour du concepteur. Cela me fait me demander si le concepteur est défectueux ou juste ma mise en œuvre de celui-ci. – Ryan

Questions connexes