Habe ich r&d für den Umfang der SQL Server Service Broker zu ersetzen, die aktuelle MSMQ-messaging-Lösung. Ich will wissen, Nachteile von SQL Server Service Broker im Gegensatz zu MSMQ folgenden Kriterien.
- Entwicklung
- Fehlersuche
- Leistung (sagen wir, wir verarbeiten müssen als 100.000 Nachrichten täglich, hat avg Größe von etwa 25 KB)
- Skalierbarkeit
InformationsquelleAutor der Frage mit | 2014-02-05
Habe ich verwendet Service Broker in mein Aktuelles Projekt, nachdem Sie zuvor MSMQ verwendet (vermittelt durch MassTransit) mit großem Erfolg. Ich war zunächst skeptisch, was die Verwendung von Service Broker, aber ich muss zugeben, es hat sich sehr gut entwickelten.
Wenn Sie mit dem Veröffentlichen /Abonnieren-Modell, dann würde ich das Message-Queueing-jedes mal, (obwohl, ich würde verwenden, RabbitMQ über MSMQ, wenn das Projekt erlaubt), aber wenn Sie wollen einfach nur kauen durch einen Stapel von Daten und speichern Sie es, um Sql Server Service Broker ist eine großartige Lösung: der Tatsache, dass es so "nah am Metall" ist ein großer Vorteil.
Entwicklung
Service Broker erfordert eine Menge von boilerplate, das ist ein Schmerz, aber es sei denn, Sie planen Sie haben viele verschiedene Warteschlangen, es ist überschaubar. Sql Server-Projekte in Visual Studio eine Menge der Schmerzen, die die Bereitstellung entfernt.
Fehlersuche
Service Broker ist eine black-box - Nachrichten gehen in, und Sie kommen in der Regel, aber wenn Sie nicht dann die Problembehandlung kann problematisch sein, und alles, was Sie tun können, ist Abfrage der system-Ansichten - und manchmal kann man einfach nicht herausfinden, was schief gegangen ist. Das ist ärgerlich, aber MSMQ hat die gleiche Art von Fragen..
Leistung
Service Broker die performance ist ausgezeichnet. Wir verarbeiten eine Menge mehr als 100.000 Nachrichten pro Tag, mehr als 30.000 pro Stunde bei unserem SLA laden, und unsere Botschaft Größen sind groß. Ich würde schätzen, wir verarbeiten fast 100.000 Nachrichten pro Stunde während der schweren Last testen.
Für die beste Leistung, würde ich raten Ihnen, verwenden Sie einen Dialog, Pool, wie diese einewie die Schaffung einer Service Broker-dialog eine teure operation sein kann.
Werden Sie wollen auch zu verwenden die Fehlerbehandlung-Prozeduren detaillierte Remus Rusanu. (Wenn Sie die Service broker verwenden, Sie könnte genauso gut Lesen Sie alles, was Remus zu dem Thema geschrieben hat, bevor Sie starten, werden Sie am Ende heraus Lesen, dass es letztendlich!)
Skalierbarkeit
Natürlich können Sie mehr als einen server zu skalieren, falls erforderlich, obwohl wir nicht gehabt haben, um so zu tun, und von der Last die Größe, die Sie erwähnen, ich glaube nicht, dass müssten Sie entweder.
Ich glaube nicht, ich habe es wirklich geschafft, Ihre Frage zu beantworten, wie ich habe nicht genug hervorgehoben Nachteile von Service Broker-Warteschlangen. Ich würde sagen, die undurchdringliche Natur sein Innenleben ist die Sache, dass die meisten ärgert mich - wenn es funktioniert, es funktioniert sehr gut, aber wenn es nicht mehr funktioniert, kann es sehr schwierig sein, herauszufinden, warum. Auch, wenn Sie haben eine Menge von Nachrichten in eine Warteschlange, mit
ALTER QUEUE
dauert eine sehr lange Zeit in Anspruch.Nicht wissen, wie Sie mit MSMQ ermöglicht es auch, verschiedene Fair vergleichen die beiden Technologien.
InformationsquelleAutor der Antwort stuartd