Entwerfen einer ereignisgesteuerten Lösung

Abgeschlossen

Mit einer ereignisgesteuerten Architektur können Sie eine Verbindung mit der Kernanwendung herstellen, ohne den vorhandenen Code ändern zu müssen. Wenn ein Ereignis auftritt, können Sie mit bestimmtem Code auf das Ereignis reagieren. Ereignisgesteuerte Anwendungen arbeiten nach dem Prinzip Send und Forget. Das Ereignis wird an das nächste System gesendet, wobei es sich um einen anderen Dienst, einen Event Hub, einen Stream oder einen Nachrichtenbroker handeln kann.

Lassen Sie uns unseren Entwurf für die Produktdemoanwendung Tailwind Traders überdenken und untersuchen, wie wir eine Web-API, die in Azure ausgeführt wird, verwendet können. Wenn eine neue Produktbewertung oder ein Demovideo hochgeladen wird, müssen wir alle mobilen Apps auf Benutzergeräten auf der ganzen Welt benachrichtigen, die an den Produkten interessiert sind. Azure Event Grid ist eine ideale Lösung für diese Anforderung.

  • Der Herausgeber der Bewertung oder des Videos muss keine Abonnenten kennen, die sich für die betreffende Produkte interessieren.
  • Es soll eine 1:n-Beziehung eingerichtet werden, in der mehrere Abonnenten vorhanden sein können. Abonnenten können optional entscheiden, ob sie an den betreffenden Produkten interessiert sind.

Wichtige Hinweise zu Azure Event Grid

Azure Event Grid ist ein vollständig verwalteter Ereignisroutingdienst, der auf Azure Service Fabric ausgeführt wird. Event Grid wurde entworfen, um das Entwickeln von ereignisbasierten und serverlosen Anwendungen in Azure zu vereinfachen.

Überprüfen Sie die folgenden Merkmale des Diensts.

  • Azure Event Grid aggregiert alle Ihre Ereignisse und bietet Weiterleitungsmöglichkeiten von einer beliebigen Quelle zu einem beliebigen Ziel.

  • Event Grid verteilt Ereignisse aus Quellen wie Azure Blob Storage-Konten.

  • Ereignisse werden an Handler wie Azure-Funktionen und Webhooks verteilt.

  • Der Dienst verwaltet die Weiterleitung und Übermittlung von Ereignissen aus vielen verschiedenen Quellen. Die Verwaltung trägt dazu bei, Kosten und Latenzzeiten zu minimieren, weil keine Abrufe mehr erforderlich sind.

Funktionsweise von Azure Event Grid

Die folgende Abbildung zeigt, wie Azure Event Grid den Ereignisprozess von mehreren Ereignisquellen zu mehreren Ereignishandlern verwaltet.

Die Abbildung zeigt, wie Azure Event Grid den Ereignisprozess von mehreren Ereignisquellen zu mehreren Ereignishandlern verwaltet.

  • Eine Ereignisquelle wie Azure Blob Storage markiert Ereignisse mit einem oder mehreren Themen und sendet Ereignisse an Azure Event Grid.

  • Ereignishandler wie Azure Functions abonnieren Themen, an denen sie interessiert sind.

  • Event Grid untersucht Themen-Tags, um zu entscheiden, welche Ereignisse an welche Handler gesendet werden sollen.

  • Event Grid leitet relevante Ereignisse an Abonnenten weiter.

  • Ereignisraster reagiert, wenn ein Ereignis auftritt. Das tatsächlich geänderte Objekt (Textdatei, Video, Audio usw.) ist jedoch nicht Teil der Ereignisdaten. Stattdessen übergibt Event Grid eine URL oder einen Bezeichner, um auf das geänderte Objekt zu verweisen.

Zu beachtende Punkte bei der Verwendung von Azure Event Grid

Azure Event Grid kann eine ideale Lösung für eine ereignisgesteuerte Anwendungsarchitektur sein. Wenn Sie sich die folgenden Überlegungen ansehen, sollten Sie überlegen, wie Event Grid die Anwendungsarchitektur von Tailwind Traders unterstützen kann.

  • Ziehen Sie mehrere Dienste in Betracht. Wählen Sie einen oder mehrere Azure-Dienste aus, um Ihre Entwurfsanforderungen zu erfüllen.

    Azure-Dienst Zweck Nachricht oder Ereignis Verwendungsszenario
    Azure-Ereignisraster Reaktive Programmierung Ereignisverteilung (diskret) Reaktion auf Statusänderungen
    Azure Event Hubs Big Data-Pipeline Ereignisstreaming (Folge) Streamen von Telemetriedaten und verteilten Daten
    Azure Service Bus Hochwertiges Unternehmensmessaging Meldung Durchführen von Auftragsverarbeitung und Finanztransaktionen
  • Berücksichtigen Sie unterschiedliche Rollen für Dienste. Untersuchen Sie die parallele Verwendung von Azure-Diensten, um unterschiedliche Rollen zu erfüllen. Eine E-Commerce-Website kann mit Azure Service Bus Bestellungen verarbeiten, mit Azure Event Hubs Telemetriedaten der Website erfassen und mit Azure Event Grid auf Ereignisse wie den Versand eines Artikels reagieren.

  • Erwägen Sie das Verknüpfen von Diensten. Verknüpfen Sie Azure-Dienste miteinander, um einen Ereignis- und Datenpipelinestream zu bilden. In diesem Szenario reagiert Azure Event Grid auf Ereignisse in anderen Diensten. Die folgende Abbildung veranschaulicht, wie mehrere Azure-Dienste als Ereignis- und Datenpipeline zum Streamen von Daten miteinander verknüpft werden können.

    Abbildung, die zeigt, wie Azure Event Hubs, Event Grid und Functions miteinander verknüpft werden, um auf Ereignisse zu reagieren und Daten zu streamen.

Tipp

Es könnte hilfreich sein, das Modul Erkunden von Azure Event Grid zu lesen.