Frage

Nur eine kurze Frage bezüglich einer Azure-Anwendung. Wenn ich eine Reihe von Web und Worker-Rollen haben, die miteinander kommunizieren müssen, sagt Dokumentation der Azure Queue Service zu nutzen.

Allerdings habe ich gerade gelesen, dass der neue .NET Service Bus nun auch Warteschlangen bietet. Diese sehen sein mächtiger als sie eine viel detailliertere API zu bieten scheinen. Während die .NSB interessanter aussieht hat es ein paar Probleme, die mich von in verteilten Anwendung verwendet es vorsichtig machen. (ZB Queue Expiration ... wenn ich kann nicht garantieren, dass eine Warteschlange rechtzeitig erneuert werde ich alles verlieren kann!).

Hat jemand Erfahrung hatte mit einem dieser beiden Technologien und einen Rat geben könnte, wenn man über den anderen zu wählen.

Ich vermute, dass, während der Service-Bus sieht stärker, als mein Anwendungsfall ist wirklich nur ermöglicht, Web / Worker Rollen zwischen miteinander zu kommunizieren, dass der Azure Queue Service ist das, was ich bin nach. Aber ich bin wirklich nur nach Bestätigung, dass vor mir Progamming an eine Ecke in: -)

Vielen Dank im Voraus.

UPDATE

gelesen haben über die beiden Systeme über das Auseinanderbrechen. Es defo sieht aus wie .NET-Service-Bus ist speziell konzipiert für Systeme, statt sie als ein Allzweck-Reliable Messaging-System zu integrieren. Azure Queues verteilt sind und so zuverlässig und skalierbar in einer Weise, dass .NSB Warteschlangen sind nicht und so besser geeignet für Code innerhalb Azure selbst gehostet werden.

Danke für die Antworten.

War es hilfreich?

Lösung

Ich würde empfehlen, dass Sie mit Azure-Warteschlangen-Stick für die Kommunikation zwischen Web und Arbeitern Rollen. Mit Warteschlangen ist die offizielle und sanktioniert Weg zwischen Azure Prozesse der Kommunikation und ich aufrichtig Zweifel, dass Sie sich in eine Ecke programmiert werden. Service Bus (AppFabric) einen höheren Aufwand und zwar wirklich gut für zu externen Anwendungen sprechen, möglicherweise nicht optimal für die schnelle und einfache Botschaften in Ihrem Azure App sein.

Andere Tipps

Speicherwarteschlangen vs Service Bus

Hier ist ein Abbau von einigen der verschiedenen Überlegungen ich im Denken über diese Frage hatte.

Verfügbarkeit

Da die Speicherausfall im November letzten Jahres Azure versprochen würden sie nie wieder Code auf alle Regionen verteilen - es in das System eingebaut, um es unmöglich zu machen. https://azure.microsoft.com/en-us/blog/final-root-cause-analysis-and-improvement-areas-nov-18-azure-storage-service-interruption/

Hier ist, was Msdn sagt über die Verfügbarkeit:

Wenn Sie bereits Azure Storage Blobs oder Tabellen verwenden und Sie starten Warteschlangen verwenden, werden Sie 99,9% Verfügbarkeit garantiert. Wenn Sie Blobs oder Tabellen mit Service Bus Warteschlangen verwenden, werden Sie geringere Verfügbarkeit haben.

Azure-Warteschlangen sind so konzipiert, die Entkopplung von Anwendungskomponenten zur Unterstützung der Skalierbarkeit und die Toleranz für Ausfälle zu erhöhen.

Entwicklung

Persönlich bin ich mit den Speicher APIs komfortabel und haben für ihre Blob Speicher in anderen Bereichen der meisten Anwendungen bereits benötigen. Speicherwarteschlangen verwenden, um die gleiche sdk als Speicher Blobs. Azure Queues bieten eine einheitliche und konsistente Programmiermodell über Warteschlangen, Tabellen und BLOBs

Kosten

Das Empfangen und Löschen-Modus unterstützt durch Service Bus bietet die Möglichkeit, den Messaging-Betriebszähler (und die damit verbunden Kosten) im Austausch für tiefergelegte Liefersicherheit zu reduzieren.

Es scheint, wie es einige Werkzeuge um die Kostenkontrolle ist für Service-Bus, dass Sie könnten nutzen, wenn Sie ein Budget halten musste starten Sie Ihre App zu laufen - ich habe einen Versuch, brechen die potenziellen Speicherwarteschlange Kosten unten :) nach unten. Es kommt zu weniger als hundert Dollar pro Monat auf mehr als 40.000 Warteschlangen pro Stunde für GRS. Gruppiert in mit dem Rest unserer Lagerkosten sehe ich nicht, Nutzen mit Schwerpunkt auf Kosten hier zu schneiden. (Bandbreite ist für beide gleich und hebt mich auf beim Vergleich)

Speicher Preis

Sie erhalten unbegrenzte kostenlose Warteschlangen und Operationen - Sie zahlen für Raum

  • annehmen 30K Nachrichtengröße als Mittelwert
  • annehmen 1000K in einem MB nicht 1024
  • übernehmen Sie die nicht getroffen graduierte über 1TB Preis

30K / 1 Nachricht * 1 TB / 1000000000K * $ 0,095 / 1 GB * 1000 GB / 1 TB = $ 0,00000285 / Nachricht für die erste TB Verwendung

1 Meldung / ~ 30K * 1000000000K / 1 TB = 33333333 Nachrichten in einem TB

33333333 Nachrichten * $ 0.00000285 / message = ~ $ 95 Dollar für das erste TB

verteilt über einen Monat können wir wie 40.000 Nachrichten tun eine Stunde mit dem ersten TB

Service Bus Preis

  • 10 Dollar pro Monat Grundpreis
  • Pay-per-Betrieb (jeder api Anruf ein op.) - fügen Sie eine Warteschlange / erhalten eine Warteschlange / überwachen die Warteschlange / etc
  • Sie erhalten 12,5 Millionen frei ops / Monat
  • Pay-per-Million ops danach

Hard Nutzung hier zu schätzen, aber 100 Millionen Operationen kosten 80 Dollar pro Monat

Batch Empfangen

Die Speicherung kann Batch bis zu maximal 32 Meldungen von Nachrichtenanzahl angeben, wenn Abrufen von Nachrichten, während Service Bus ermöglicht eine Warteschlange Client Batch mehr Nachrichten in einen einzigen Sendevorgang.

So Speicher ist Batch empfangen, während Servicebus Batch send ist.

Überwachung

Azure-Warteschlangen ermöglichen es Ihnen, ein detailliertes Protokoll aller Transaktionen gegen die Warteschlange ausgeführt zu erhalten, sowie Metriken aggregiert. Diese Art der Unterstützung kommt nicht von Box heraus mit Service Bus -. Aber könnte wahrscheinlich eine vorgefertigte Lösung irgendwo finden

Spedition

Service Bus verfügt über eine automatische Weiterleitung Funktion, die Speicherwarteschlangen fehlen.

automatische Weiterleitung ermöglicht Tausende von Warteschlangen Auto-weiterleiten ihre Nachrichten an eine einzelne Warteschlange, aus der die Empfangs Application verbraucht die Nachricht. Sie können diesen Mechanismus verwenden, um Sicherheit zu erreichen, Kontrollfluss, und Isolat Speicher zwischen jeder Nachricht Verlag.

Dubletten

Die Vervielfältigung Erkennungsfunktionalität von Service Bus Warteschlangen unterstützt entfernt automatisch doppelte Nachrichten an einer Warteschlange oder ein Thema gesendet, basierend auf dem Wert der MessageID Eigenschaft.

Speicherwarteschlange Nachrichten können ohne Warnung duplizieren.

Metadaten

Service Bus gibt Ihnen 2 Teile einer Message-Header + Körper. Dies ist eine sehr nützliche Funktion für eine weltweit im Einsatz Infrastruktur. Lassen Sie Ihre Nachrichten mit Dingen wie Region Namen und die Instanz-ID dekorieren. Queue-Meldungen sind einfache Strings. Auf der anderen Seite Azure Speicherwarteschlangen bieten Unterstützung für beliebige Attribute, die in die Warteschlange Beschreibung angewendet werden können, in der Form von Name / Wert-Paare. So können Sie die Nachricht im Service Bus dekorieren können und die Warteschlange mit Speicherwarteschlangen

dekorieren

Liefergarantie

Service Bus bietet At-Most-Once und At-Least-Once während Queues bieten nur At-Least-Once Lieferung. Dies könnte unsere Fähigkeit Warteschlangen zu verwenden, wenn gleichzeitig Abonnent jemals ein Problem sind.

Performance

Azure Speicherwarteschlangen bieten eine 10 ms Latenz (in einem Rechenzentrum), während Service Bus Latenz 20-25ms. Service Bus nicht bieten Lang Polling, die besser wäre, auch als 10ms, wenn Sie eine Notwendigkeit für sie.

Sicherheit

Speicherwarteschlangen verwenden, um die primäre / sekundäre Shared-Key-Sache, während Service-Bus RBAC bietet über Active Directory mit Sender / Empfänger / Admin-Rollen.

Referenzen

Wie ich es verstehe, der Service Bus (wie war) wird für eine Weile Warteschlangen hat, aber diese sind nicht garantiert, die Nachricht zuzustellen - bon Chance

Nähen Azure Queues übereinstimmen, weil Ihr Anwendungsfall bleibt einfach mit einfacher REST-basierten Get / Put / Peek-Schnittstelle.

Die Dokumentation havs kürzlich (2015.05.21) aktualisiert und Details genau dann, wenn die eine oder die andere verwendet wird, und die gemeinsamen Merkmale (Transaktionsunterstützung, Größe der Warteschlange und die Nachricht, Time to Live, ... ):

https://azure.microsoft.com/en-us/documentation/articles/service-bus-azure-and-service-bus-queues-compared-contrasted/

Die Warteschlange im Zusammenhang Muster ein Entwickler lernt können beide angewendet werden. Beide können von einer Zuverlässigkeit und umsetzungs Leichtigkeit Sicht verwendet werden.

Dinge können nur Speicherwarteschlange tun 1) Der Arbeiter Verarbeiten einer Nachricht abstürzt. Eine nachfolgende Arbeiter will den Status der Nachricht lesen , um fortzufahren, von wo der Stand der Arbeiter aufgehört hat. 2) Sie benötigen serverseitige Protokolle aller der ausgeführten Transaktionen gegen die Warteschlangen.

Aber Vergleiche sind nicht wichtig. Wenn benutzerdefinierte Warteschlange Entwicklung ist das, was wir brauchen, dann immer Speicherwarteschlange verwenden. Es war das erste von Microsoft entwickelt werden. Service Bus gebracht wurde in Kopieren BizTalk und der Zweck ist die Integration (hybrid), daher gibt es erweiterte Funktionen in dieser Zeile: Sitzungen, Transaktionen, automatische dead-Buchstaben usw.

Dieser Link einen Vergleich bietet, so tut diesen Link . Es wird schwierig sein, alles zu analysieren und in einer agilen Entwicklung beginnt daher die oben genannte Regel.

Um die Dinge sehr klar zu machen, das ist ein Vergleich zwischen zwei Azure-Komponenten, zu einem anderen Zeitpunkt erstellt, aus verschiedenen Gründen.

Speicherwarteschlangen und Service Bus Warteschlangen - verglichen und gegenüber

  

Azure unterstützt zwei Arten von Warteschlangen-Mechanismen: Speicherwarteschlangen und Service Bus   Warteschlangen.

     

Speicher-Warteschlangen, die einen Teil der Azure Storage-Infrastruktur sind,   verfügen über eine einfache REST-basierten GET / PUT / PEEK-Schnittstelle und bietet   zuverlässig, ausdauernd Messaging innerhalb und zwischen den Diensten.

     

Service Bus Warteschlangen sind Teil eines breiten angelegten Azure-Messaging   Infrastruktur, dass Stützen sowie Publish / Subscribe-Queuing und   fortgeschritteneren Integrationsmuster. Weitere Informationen zu Service   Bus-Warteschlangen / Themen / Abonnements finden Sie die Übersicht der Service Bus.

     

Während beide Warteschlangen Technologien gleichzeitig existieren, Speicherwarteschlangen   zuerst eingeführt wurden, als ein spezieller Warteschlangenspeichermechanismus aufgebaut auf   Anfang der Azure Storage Services. Service Bus-Warteschlangen sind oben gebaut von   die breitere Messaging-Infrastruktur entwickelt, um die Integration   Anwendungen oder Anwendungskomponenten, die mehrere überspannen   Kommunikationsprotokolle, Datenverträge, Vertrauen Domänen und / oder Netzwerk   Umgebungen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top