Ich benötige eine Enterprise Service Bus/Message Queuing-Lösung für Publisher/Subscriber-Funktionalität. Ich weiß, VIELE existieren ... MSMQ, MS-Serie, RabbitMQ, NServiceBus, etc usw. ...SQL Service Broker als generischer Enterprise Message Bus für .net
Meine eine Voraussetzung ist, dass in einer gemeinsamen Hosting-Lösung, die einzige Abhängigkeit, die ich garantieren kann, ist SQL 2005 und später ... das führt mich direkt zu SQL Service Broker.
Wenn es klingt wie ich versuche, ESB-Funktionalität in SSB zu Schuhanzieher ... Ich glaube, ich bin ...
Meine Frage ist: Wer weiß, einen .NET-API oder Framework, das auf der Oberseite sitzt von SQL Service Broker und bietet bereits viel von den Sanitäranlagen?
Wenn ich rein ADO.net verwenden, ich Artikel zu den Warteschlangen hinzufügen könnte durch eine gespeicherte Prozedur aufrufen, aber dann:
- der Natur der Gespräche tun, würde ich ein Gespräch pro Nachricht machen ?
- Wenn ja, verliere ich sequenzielle Nachricht Verarbeitung?
- Wie bekomme ich Nachrichten (ich kenne die Empfangssyntax in t-SQL), rufe ich eine gespeicherte Prozedur wiederholt in einer Nachrichtenschleife an, um zu versuchen, eine Nachricht aus der Warteschlange zu bekommen?
- Oder würde ich WAITFORever? Die Verbindung offen halten und die gespeicherte Prozedur für immer ausführen?
- SQL Service Broker nicht Monolog Gespräche unterstützen, aber ich las sie umgesetzt werden kann ...
Es ist diese Art von Fragen, die ich dort machen wollen existierte eine .net-Lösung, die all dies bereits geschaffen .
Seit ich diese Frage gepostet habe, ironisch genug, fand ich Ihren Artikel "[Verwenden von Tabellen als Warteschlangen] (http://rusanu.com/2010/03/26/using-tables-as-queues/)". Da ich das Aktivierungsfeature von Service Broker sowieso nicht verwenden würde, denke ich, dass ich stattdessen eine Tabellenwarteschlangen-basierte Lösung zusammenstellen kann (aus all den Gründen, die Sie unter "Warum integrierte Warteschlangen verwenden?"). Vielen Dank! – Novox
Aber eine Warteschlange ist kein Bus. Wenn Sie Transport und Remote-Nachrichtenübermittlung nicht benötigen, ist das Problem viel einfacher. Solange Sie verstehen, dass Sie nie aus Ihrer einzigen Instanz skalieren werden, die die Warteschlangentabelle hostet, ist das in Ordnung. –
Eine SQL-Instanz, die die Warteschlangentabelle hostet? Wäre ich nicht in der Lage, Replikation für mehrere Instanzen von SQL zu verwenden? – Novox