Bearbeiten

Teilen über


Gaming mit Azure Cosmos DB

Azure App Service
Azure Cosmos DB

Lösungsmöglichkeiten

In diesem Artikel ist ein Lösungsvorschlag beschrieben. Ihr Cloudarchitekt kann diesen Leitfaden verwenden, um die Hauptkomponenten einer typischen Implementierung dieser Architektur zu visualisieren. Verwenden Sie diesen Artikel als Ausgangspunkt, um eine gut durchdachte Lösung zu entwerfen, die den spezifischen Anforderungen Ihrer Workload entspricht.

Bei diesem Gaming-Lösungsansatz wird Ihre Datenbank elastisch skaliert, um unvorhersehbare Datenverkehrsaufkommen zu bewältigen und global Multiplayer-Erlebnisse mit niedriger Latenz zu ermöglichen.

Architektur

Architekturdiagramm zeigt eine Gaming-Lösungsidee, die Azure Cosmos DB verwendet.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Azure Traffic Manager leitet den Gamingdatenverkehr eines Benutzers an die Apps, die unter Azure App Service, Functions oder Containern gehostet werden, sowie an APIs weiter, die über das Azure-API-Gateway veröffentlicht werden.
  2. Azure CDN stellt für den Benutzer statische Bilder und Spielinhalte bereit, die in Azure Blob Storage gespeichert sind.
  3. Azure Cosmos DB speichert die Spielstanddaten des Benutzers.
  4. Azure Databricks korreliert, bereinigt und transformiert Spielstanddaten.
  5. Azure Functions verarbeitet die aus Azure Databricks abgeleiteten Erkenntnisse und sendet Pushbenachrichtigungen über Azure Notification Hubs an mobile Geräte.

Komponenten

Diese Architektur besteht aus den folgenden Komponenten:

  • Azure Traffic Manager ist ein DNS-basiertes Lastenausgleichsmodul, mit dem die Verteilung von Benutzerdatenverkehr für Dienstendpunkte in unterschiedlichen Azure-Regionen gesteuert wird. Während des normalen Betriebs werden Anforderungen an die primäre Region weitergeleitet. Wenn diese Region nicht mehr verfügbar ist, kann Traffic Manager bei Bedarf ein Failover in die sekundäre Region ausführen.

  • Mit Azure API Management wird ein API-Gateway bereitgestellt, das vor den Gaming-APIs angeordnet ist. API Management kann auch für Implementierungen der folgenden Art verwendet werden:

    • Erzwingen von Nutzungskontingenten und Ratenbegrenzungen
    • Überprüfen von OAuth-Token für die Authentifizierung
    • Aktivieren von ursprungsübergreifenden Anforderungen (Cross-Origin Requests, CORS)
    • Zwischenspeichern von Antworten
    • Überwachen und Protokollieren von Anforderungen
  • Azure App Service hostet API-Anwendungen und ermöglicht Autoskalierung und Hochverfügbarkeit, ohne eine Infrastruktur verwalten zu müssen.

  • Azure CDN stellt statische zwischengespeicherte Inhalte von Standorten bereit, die sich in der Nähe der Benutzer befinden, um die Latenz zu reduzieren.

  • Azure Blob Storage ist für die Speicherung großer Mengen von unstrukturierten Daten, z. B. statische Gamingmedien, optimiert.

  • Azure Cosmos DB ist ein vollständig verwalteter NoSQL-Datenbankdienst zum Erstellen und Modernisieren von skalierbaren Hochleistungsanwendungen.

  • Azure Databricks ist eine Apache Spark-basierte Analyseplattform, die für die Microsoft Azure-Clouddienstplattform optimiert ist.

  • Bei Azure Functions handelt es sich um eine serverlose Computeoption, mit der Anwendungen bedarfsgesteuert ausgeführt werden können, ohne dass die Infrastruktur verwaltet werden muss.

  • Bei Azure Notification Hubs handelt es sich um eine hochgradig skalierbare Engine für Pushbenachrichtigungen, die das schnelle Senden von Benachrichtigungen an viele verschiedene mobile Geräte und Plattformen ermöglicht.

Szenariodetails

Mögliche Anwendungsfälle

Diese spezifische Lösung basiert auf einem Gamingszenario für die Spieleentwicklungsbranche. Die Entwurfsmuster sind für viele Branchen relevant, in denen die Verarbeitung von Webaufrufen und API-Anforderungen mit hohem Datenverkehrsaufkommen erforderlich ist, z. B. E-Commerce- und Einzelhandelsanwendungen.

Nächste Schritte

Lesen Sie die folgenden Artikel zu Azure Cosmos DB:

Produktdokumentation:

Die folgenden Lösungsideen unterstützen Azure Cosmos DB: