Auswahl von Azure-Messagingdiensten: Event Grid, Event Hubs und Service Bus
Azure bietet drei Dienste, die Sie bei der Übermittlung von Ereignissen oder Nachrichten innerhalb einer Lösung unterstützen. Diese Dienste sind: Azure Event Grid, Azure Event Hubs und Azure Service Bus.
Trotz einiger Gemeinsamkeiten ist jeder dieser Dienste für bestimmte Szenarien konzipiert. Dieser Artikel beschreibt die Unterschiede zwischen den Diensten und unterstützt Sie bei der Wahl eines passenden Diensts für Ihre Anwendung. In vielen Fällen ergänzen sich die Messagingdienste gegenseitig und können zusammen verwendet werden.
Ereignisse im Vergleich zu Nachrichten
Zwischen Diensten, die ein Ereignis übermitteln, und Diensten, die eine Nachricht übermitteln, besteht ein wichtiger Unterschied.
Ereignis
Ein Ereignis ist eine einfache Benachrichtigung über eine Bedingung oder eine Zustandsänderung. Der Verleger des Ereignisses hat keine Erwartungen hinsichtlich der Behandlung des Ereignisses. Der Consumer des Ereignisses entscheidet, was mit der Benachrichtigung getan wird. Ereignisse können eigenständige Einheiten oder Teil einer Reihe sein.
Eigenständige Ereignisse geben Änderungen in einem Status an und erfordern Aktionen. Um den nächsten Schritt zu machen, muss der Consumer nur zu wissen, dass etwas passiert ist. Die Ereignisdaten geben Aufschluss darüber, was geschehen ist, enthalten aber nicht die Daten, die das Ereignis ausgelöst haben. Ein Ereignis kann beispielsweise Consumer darüber informieren, dass eine Datei erstellt wurde. Das Ereignis kann allgemeine Informationen zu der Datei enthalten, aber nicht die eigentliche Datei. Eigenständige Ereignisse eignen sich ideal für serverlose Lösungen, die skaliert werden müssen.
Eine Reihe von Ereignissen meldet eine Bedingung und kann analysiert werden. Die Ereignisse sind nach Zeit sortiert und voneinander abhängig. Der Consumer benötigt die sortierte Reihe von Ereignissen, um zu analysieren, was passiert ist.
Meldung
Bei einer Nachricht handelt es sich um Rohdaten, die von einem Dienst erzeugt wurden und für die Nutzung oder Speicherung an anderer Stelle vorgesehen sind. Die Nachricht enthält die Daten, die die Nachrichtenpipeline ausgelöst haben. Der Verleger der Nachricht hat eine Erwartung dazu, wie der Consumer die Nachricht verarbeitet. Ein Vertrag besteht zwischen den beiden Seiten. Beispiel: Der Verleger sendet eine Nachricht mit den Rohdaten und erwartet, dass der Consumer eine Datei aus den Daten erstellt und eine Antwort sendet, wenn die Arbeit abgeschlossen ist.
Sehen wir uns nun schnell an, was Azure Event Grid, Azure Event Hubs und Azure Service Bus sind.
Azure Event Grid
Azure Event Grid ist ein hochgradig skalierbarer, vollständig verwalteter Pub Sub-Nachrichtenverteilungsdienst, der flexible Nachrichtenverarbeitungsmuster mit den Message Queue Telemetry Transport (MQTT)- und HTTP-Protokollen bietet. Mit Azure Event Grid können Sie Datenpipelines mit Gerätedaten erstellen, Anwendungen integrieren und ereignisgesteuerte serverlose Architekturen erstellen.
Der Dienst bietet ein Ereignisbackbone, das ereignisgesteuerte und reaktive Programmierung ermöglicht. Es verwendet das Veröffentlichen-Abonnieren-Modell. Herausgeber geben Ereignisse aus, haben aber keinen Einfluss darauf, wie die Ereignisse verarbeitet werden. Abonnenten entscheiden, welche Ereignisse sie behandeln möchten.
Event Grid ist tiefgreifend in andere Azure-Dienste integriert und kann in Drittanbieterdienste integriert werden. Es vereinfacht die Nutzung von Ereignissen und senkt Kosten, da nicht ständig Abfragen durchgeführt werden müssen. Event Grid leitet effizient und zuverlässig Ereignisse von Azure-eigenen und Azure-fremden Ressourcen weiter. Die Ereignisse werden an registrierte Abonnentenendpunkte verteilt. Die Ereignismeldung enthält die Informationen, die Sie benötigen, um auf Änderungen in Diensten und Anwendungen zu reagieren.
Das Repository weist die folgenden Merkmale auf:
- Dynamisch skalierbar
- Niedrige Kosten
- Serverlos
- Mindestens eine Übermittlung eines Ereignisses
Event Grid wird in zwei Versionen angeboten: Azure Event Grid, ein vollständig verwalteter PaaS-Dienst in Azure, und Event Grid in Kubernetes mit Azure Arc, mit dem Sie Event Grid in Ihrem Kubernetes-Cluster unabhängig davonverwenden können, wo dieser bereitgestellt ist, ob lokal oder in der Cloud. Weitere Informationen finden Sie unter Übersicht über Azure Event Grid und Übersicht über Event Grid in Kubernetes mit Azure Arc.
Azure Event Hubs
Bei Azure Event Hubs handelt es sich um eine Big Data-Streamingplattform und einen Ereigniserfassungsdienst. Mit diesem Dienst können Millionen von Ereignissen pro Sekunde empfangen und verarbeitet werden. Es vereinfacht die Erfassung, Aufbewahrung und Wiedergabe von Telemetrie- und Ereignisdatenstromdaten. Die Daten können aus vielen parallelen Quellen stammen. Mit Event Hubs können Telemetrie- und Ereignisdaten für verschiedene datenstromverarbeitende Infrastrukturen und Analysediensten verfügbar gemacht werden. Die Daten sind entweder als Datenströme oder als gebündelte Ereignisbatches verfügbar. Dieser Dienst bietet eine Einzellösung zum schnellen Datenabruf für die Verarbeitung in Echtzeit sowie für die wiederholte Wiedergabe gespeicherter Rohdaten. Er kann die Streamingdaten zur Verarbeitung und Analyse in einer Datei erfassen.
Das Repository weist die folgenden Merkmale auf:
- Geringe Wartezeit
- Empfangen und Verarbeiten von Millionen von Ereignissen pro Sekunde
- Mindestens eine Übermittlung eines Ereignisses
Weitere Informationen finden Sie unter Übersicht über Event Hubs.
Azure Service Bus
Bei Service Bus handelt es sich um einen vollständig verwalteten Nachrichtenbroker für Unternehmen mit Nachrichtenwarteschlangen und Veröffentlichen-Abonnieren-Themen. Der Dienst ist für Unternehmensanwendungen konzipiert, die Transaktionen, Sortierung, Duplikaterkennung und sofortige Konsistenz erfordern. Mit Service Bus können native Cloudanwendungen eine zuverlässige Zustandsübergangsverwaltung für Geschäftsprozesse bereitstellen. Nutzen Sie Azure Service Bus für wichtige Nachrichten, die nicht verloren gehen oder dupliziert werden dürfen. Dieser Dienst ermöglicht auch eine äußerst sichere Kommunikation über Hybrid Cloud-Lösungen hinweg und kann vorhandene lokale Systeme mit Cloudlösungen verbinden.
Service Bus ist ein System für Brokermessaging. Es speichert Nachrichten in einem „Broker“ (z. B. in einer Warteschlange), bis die Empfängerseite für den Empfang der Nachrichten bereit ist. Das Repository weist die folgenden Merkmale auf:
- Zuverlässige asynchrone Nachrichtenübermittlung (abfragebasiertes Enterprise Messaging-as-a-Service). Wenn Sie Service Bus verwenden und Nachrichten empfangen möchte, ohne die Warteschlange abrufen zu müssen, können einen langen Abrufempfangsvorgang mithilfe der TCP-basierten Protokolle verwenden, die von Service Bus unterstützt werden.
- Erweiterte Messagingfeatures wie FIFO (First-In-First-Out), Batchverarbeitung/Sitzungen, Transaktionen, unzustellbare Nachrichten, zeitliche Steuerung, Routing und Filterung sowie Duplikaterkennung
- Mindestens eine Übermittlung einer Nachricht
- Optional: geordnete Übermittlung von Nachrichten
Weitere Informationen finden Sie unter Übersicht über Service Bus.
Vergleich von Diensten
In der folgenden Tabelle werden die drei Dienste verglichen: Event Grid, Event Hubs und Service Bus.
Dienst | Zweck | type | Einsatzgebiete |
---|---|---|---|
Event Grid | Reaktive Programmierung | Ereignisverteilung (eigenständige Ereignisse) | Reagieren auf Statusänderungen |
Event Hubs | Big Data-Pipeline | Ereignisstreaming (Reihe) | Streamen von Telemetriedaten und verteilten Daten |
Service Bus | Hochwertiges Unternehmensmessaging | Meldung | Auftragsverarbeitung und Finanztransaktionen |
Gemeinsame Verwendung der Dienste
In manchen Fällen werden Dienste parallel verwendet, um bestimmte Rollen zu erfüllen. Eine E-Commerce-Website kann beispielsweise mit Service Bus Bestellungen verarbeiten, mit Event Hubs Telemetriedaten der Website erfassen und mit Event Grid auf Ereignisse wie etwa den Versand eines Artikels reagieren.
In anderen Fällen können die Dienste zu einer Ereignis- und Datenpipeline verknüpft werden. Event Grid wird verwendet, um auf Ereignisse in den anderen Diensten zu reagieren. Ein Beispiel für die Verwendung von Event Grid mit Event Hubs für die Migration von Daten zu Azure Synapse Analytics finden Sie unter Streamen von Big Data in Azure Synapse Analytics. Die folgende Abbildung zeigt den Workflow zum Streamen der Daten:
Zugehöriger Inhalt
Weitere Informationen finden Sie in folgenden Artikeln:
- Asynchrone Messagingoptionen in Azure
- Events, Data Points, and Messages - Choosing the right Azure messaging service for your data Ereignisse, Datenpunkte und Nachrichten: Der passende Azure-Messagingdienst für Ihre Daten)