Bearbeiten

Auflösen von Batches und Filtern bei der serverlosen Ereignisverarbeitung mit Event Hubs

Azure Event Hubs
Azure-Funktionen
Azure Cosmos DB

Lösungsmöglichkeiten

Dieser Artikel ist ein Lösungsvorschlag. Wenn Sie möchten, dass wir diesen Artikel um weitere Informationen ergänzen, z. B. potenzielle Anwendungsfälle, alternative Dienste, Überlegungen zur Implementierung oder Preisempfehlungen, lassen Sie es uns über Feedback auf GitHub wissen.

In diesem Artikel wird eine serverlose ereignisgesteuerte Architektur beschrieben, in der Azure Event Hubs und Azure Functions verwendet werden, um einen Datenstrom für die Speicherung in einer Datenbank zu erfassen und zu filtern.

Aufbau

Diagramm, das den Datenfluss und wichtige Verarbeitungspunkte in der in diesem Artikel beschriebenen Architektur zeigt

Datenfluss

  1. Ereignisse treffen beim Eingabeereignis-Hub ein.
  2. Die Azure-Funktion zum Debatchieren und Filtern wird ausgelöst, um das Ereignis zu behandeln. In diesem Schritt werden unerwünschte Ereignisse herausgefiltert, und die empfangenen Ereignisse werden vor der Übermittlung an den Output Event Hub als Batches zurückgesetzt.
  3. Wenn die Azure-Funktion zum Debatchieren und Filtern das Ereignis nicht erfolgreich speichern kann, wird das Ereignis an den Deadletter Event Hub 1 übermittelt.
  4. Ereignisse, die beim Ausgabeereignis-Hub eintreffen, lösen die Azure-Funktion zum Transformieren aus. Diese Azure-Funktion transformiert das Ereignis in eine Nachricht für die Azure Cosmos DB-Datenbank.
  5. Das Ereignis wird in einer Azure Cosmos DB-Datenbank gespeichert.
  6. Wenn die Transformierende Azure-Funktion das Ereignis nicht erfolgreich speichern kann, wird das Ereignis im Deadletter Event Hub 2 gespeichert.

Komponenten

  • Der Datenstrom wird mit Event Hubs erfasst. Event Hubs ist für Datenstromszenarien mit hohem Durchsatz konzipiert.
  • Azure Functions ist eine serverlose Computeoption. Es wird ein ereignisgesteuertes Modell verwendet, bei dem ein Codeabschnitt (eine Funktion) durch einen Trigger aufgerufen wird.
  • Azure Cosmos DB ist ein Datenbankdienst mit mehreren Modellen, der in einem serverlosen, verbrauchsbasierten Modus verfügbar ist. Für dieses Szenario speichert die Funktion für die Ereignisverarbeitung JSON-Datensätze mithilfe von Azure Cosmos DB for NoSQL.

Szenariodetails

Diese Lösungsidee beschreibt eine Variante einer serverlosen ereignisgesteuerten Architektur, die Event Hubs und Azure Functions zum Erfassen und Verarbeiten eines Datenstroms verwendet. Nachdem die Batches entfernt und gefiltert wurden, werden die Ergebnisse zur Speicherung und zukünftigen Überprüfung in eine Datenbank geschrieben.

Weitere Informationen zu den grundlegenden Konzepten, Überlegungen und Ansätzen für die serverlose Ereignisverarbeitung finden Sie in der Referenzarchitektur für die serverlose Ereignisverarbeitung.

Mögliche Anwendungsfälle

Ein beliebter Anwendungsfall für die Implementierung eines End-to-End-Ereignisdatenstrom-Verarbeitungsmusters ist der Event Hubs-Streamingerfassungsdienst zum Empfangen und Verarbeiten von Ereignissen pro Sekunde mithilfe einer Debatching- und Transformationslogik, die mit hochgradig skalierbaren, durch Event Hub ausgelösten Funktionen implementiert wird.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte