Bearbeiten

Transithub: Dynamisches Pub/Sub-Messagingsystem

Azure Cache for Redis
Azure Cosmos DB
Azure Event Hubs
Azure-Funktionen
Azure-Servicebus

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 ein elastisches, flexibles Veröffentlichungs-/Abonnementmodell (Pub/Sub) für Datenproducer und -consumer beschrieben, mit dem überprüfte zusammengestellte Inhalte oder Daten erstellt und genutzt werden können.

Architektur

Diagramm: Veröffentlichungs-/Abonnement-Messagingsystem Transithub

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Mit der Datenproducer-App werden Daten für Azure Event Hubs veröffentlicht. Von dort aus werden die Daten dann an die Funktion Ereignisverarbeitung von Azure Functions gesendet.

  2. Darüber hinaus wird auch das JSON-Schema vom Datenproducer zur Speicherung an einen Azure Storage-Container gesendet.

  3. Mit der Funktion Ereignisverarbeitung wird das JSON-Schema aus Azure Cache for Redis abgerufen, um die Latenz zu reduzieren, und das Schema wird zum Überprüfen der Daten verwendet.

    Falls das Schema noch nicht zwischengespeichert ist, wird es mit der Funktion Ereignisverarbeitung aus dem Azure Storage-Container abgerufen. Mit der Anforderung für das Schema wird es auch in Azure Cache for Redis gespeichert, damit es später abgerufen werden kann.

    Hinweis

    Azure Schema Registry in Event Hubs kann eine sinnvolle Alternative zum Speichern und Zwischenspeichern von JSON-Schemas sein. Weitere Informationen finden Sie unter Azure-Schemaregistrierung in Azure Event Hubs.

  4. Wenn ein Thema bereits vorhanden ist und die Daten gültig sind, führt die Funktion Ereignisverarbeitung die Daten im vorhandenen Azure Service Bus-Thema Gültige Daten zusammen und sendet das Thema an die Datenconsumer-App.

  5. Falls ein Thema bereits vorhanden ist und die Daten ungültig sind, führt die Funktion Ereignisverarbeitung die Daten im vorhandenen Azure Service Bus-Thema Ungültige Daten zusammen und sendet das Thema zurück an den Datenproducer. Der Datenproducer abonniert die Ungültige Daten-Themen, um Feedback zu den ungültigen Daten zu erhalten, die vom Producer erstellt wurden.

  6. Falls ein Thema noch nicht vorhanden ist, werden die neuen Daten über die Funktion Ereignisverarbeitung im Service Bus-Thema Neue Daten veröffentlicht, und das Thema wird an die Funktion Service Bus Topic Manager gesendet.

  7. Wenn die neuen Daten gültig sind, fügt die Funktion Ereignisverarbeitung die Daten auch als neuen Datensatz vom Typ Momentaufnahmedaten in Azure Cosmos DB ein.

  8. Wenn die neuen Daten gültig sind, wird mit der Funktion Service Bus Topic Manager ein neues Service Bus-Thema vom Typ Gültige Daten erstellt und an Event Hubs gesendet.

  9. Falls die neuen Daten ungültig sind, wird mit der Funktion Service Bus Topic Manager ein neues Service Bus-Thema vom Typ Ungültige Daten erstellt und zurück an die Datenproducer-App gesendet.

  10. Der Snapshot Data Flat File Processor (Verarbeitung von Momentaufnahmedaten-Flatfiles) in Azure Data Factory wird nach einem Zeitplan ausgeführt, um alle Momentaufnahmedaten aus der Azure Cosmos DB-Datenbank mit den Momentaufnahmedaten zu extrahieren. Der Processor erstellt ein Flatfile und veröffentlicht es in Azure Storage als Momentaufnahmedaten-Flatfile, das heruntergeladen werden kann.

  11. Mit der Datenconsumer-App wird eine Liste mit allen Service Bus-Themen abgerufen, die über Service Bus Topic Manager abonniert werden können. Die App führt die Registrierung bei Service Bus Topic Manager durch, um die Service Bus-Themen zu abonnieren.

Komponenten

Szenariodetails

Transithub ist ein dynamisches Veröffentlichungs-/Abonnementmodell (Pub/Sub) für Datenproducer und -consumer, mit dem überprüfte zusammengestellte Inhalte oder Daten erstellt und genutzt werden können. Das Modell ist elastisch, um eine gute Skalierbarkeit und hohe Leistung zu ermöglichen. Datenproducer können in kurzer Zeit das Onboarding und Datenuploads für einen Dienst durchführen. Der Dienst überprüft die Daten anhand eines Schemas, das vom Datenproducer bereitgestellt wird. Anschließend macht der Dienst die überprüften Daten verfügbar, damit Abonnenten die gewünschten Daten nutzen können.

Der Dienst, der die Daten überprüft, muss nicht über die Nutzdaten informiert sein, sondern nur wissen, ob sie für das vom Producer bereitgestellte Schema gültig sind. Diese Flexibilität bedeutet, dass der Dienst neue Nutzdatentypen akzeptieren kann, ohne dass eine neue Bereitstellung erforderlich ist. Mit dieser Lösung können Datenconsumer auch Verlaufsdaten erhalten, die vor dem Abonnementbeginn des Consumers veröffentlicht wurden.

Mögliche Anwendungsfälle

Dieses Modell ist besonders in den folgenden Szenarien nützlich:

  • Messagingsysteme, bei denen das Benutzervolumen und der Status unbekannt oder nicht vorhersehbar sind
  • Veröffentlichungssysteme, bei denen unter Umständen neue oder unbekannte Datenquellen unterstützt werden müssen
  • E-Commerce- oder Ticketsysteme, bei denen Daten fortlaufend aktualisiert und zwischengespeichert werden müssen, um eine schnelle Bereitstellung zu ermöglichen

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