Actuellement je développe un serveur pour la surveillance par satellite des objets. Dans son état actuel, il est très efficace et stable dans les scénarios de forte charge. Le serveur doit pouvoir traiter 50 messages + mln par jour, ou plus si l'équilibrage de charge est utilisé. Il se compose de passerelle de données gps (singleton), "databroker" (singleton), qui est responsable de la persistance des données, fournir sur demande, et alerter les abonnés sur les nouvelles données, service de connexion (par appel) et service client (par session) , responsable de l'abonnement et de travailler avec l'interface web et client riche.Personnalisé ServiceBus et "adaptateur" pour cela en utilisant WCF
A ce stade je peux forsee ces problèmes:
- La complexité croissante si de nouveaux services sont ajoutés.
- Couplage serré.
- Difficile à configurer.
- Beaucoup de code de bas niveau pour gérer les abonnements etc dans les futurs services bl (rapports par exemple).
Pour résoudre ces problèmes, je veux utiliser quelque chose comme ServiceBus.
Les solutions MS sont chères pour nos clients, NServiceBus me fait un peu peur, en raison de ses origines open source (et Class1 dans le code source = D) et CIO a demandé d'éviter de l'utiliser.
J'ai donc décidé d'écrire mon propre bus simple, et j'ai rencontré des problèmes avec l'adressage et l'abonnement de différents types de services (singleton, par session, par appel) et aussi l'équilibrage de charge.
J'ai trouvé une solution assez élégante pour cela: utilisez des «adaptateurs» pour les services bus-wcf pour l'encapsulation de certains problèmes spécifiques de fonctionnement avec les services - comme l'équilibrage de charge. Ainsi, le bus ne verra que les adaptateurs et acheminera les messages entre eux et transmettra les messages plus loin. Je serai très reconnaissant d'entendre des pensées sur toutes ces choses =)
PS bus et les adaptateurs utilisent MSMQ pour la communication entre eux, mais d'autres services peuvent utiliser http, tcp bindings.
PS2 Désolé pour mon anglais, ce ne est pas ma langue maternelle =)
Quels sont les « solutions MS » qui sont trop expens ive pour toi? Avez-vous regardé le "servicebus dans le cloud" (Azure Servicebus)? –
Oui, parier que ce n'est pas une option = (Par exemple, les clients qui utilisent notre serveur pour surveiller des véhicules qui transportent de l'argent par exemple ... ils veulent que leur infrastructure informatique soit sous leur contrôle total –