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. Event Grid ist keine Datenpipeline und übermittelt nicht das eigentliche Objekt, das aktualisiert wurde.

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:

Diagramm der möglichen Verbindung von Event Hubs, Service Bus und Event Grid.

Weitere Informationen finden Sie in folgenden Artikeln: