2016-04-15 8 views
0

Ich schreibe ein Multiplayer-Echtzeit-Spiel. Ich habe eine Website für die Registrierung und Spielerstatistiken und ein Spiel für die eigentlichen Spieldaten. Hier sind einige Optionen, die ich auf meinem Backend-Design und Meine Bedenken() habe:Rennzustand in zwei Backend

  1. Verwenden Sie dasselbe Backend für Spiel und Website: nicht sicher.
  2. Verwenden Sie verschiedene Backend aber gleiche Datenbank für Spiel und Website, so Benutzer auf der Website registrieren und am Spiel spielen: wird dieses Design Situation verursachen, wenn beide Backend an Mongodb schreiben (wie neue Benutzerregistrierung und Benutzerstatistik ändern sich gleichzeitig Zeit von beiden Enden?)?
  3. Verwenden Sie verschiedene Backend und andere Datenbank: Diese beiden Datenbank muss synchronisiert werden, da Spieler von der Website kommt und Website-Statistiken kommt aus dem Spiel.
+0

Sie können ** ein Backend ** und ** eine Datenbank ** für beide verwenden: Spiel und Website. Es kann nicht sicher sein, nur wenn Sie Architekturfehler in diesem Backend hinzufügen. Was ist mit dem parallelen Schreiben in der Datenbank, kann jede moderne Datenbank diese Situation bewältigen. – alexmac

Antwort

0

Verwenden Sie eine Datenbank mit drei Sammlungen. Die erste Sammlung hat Spielerregistrierung (Anmeldung, Anmeldung, Abmeldung, Sitzung). Die zweite Sammlung enthält Spielerstatistiken und die dritte Sammlung hat ein Gameplay. Wenn Sie Event Sourcing verwenden, um die Spieldaten zu speichern, können Sie das MongoDB Aggregation Framework verwenden, um Ihre Statistiken zu generieren, die in die zweite Sammlung geschrieben werden können.

Sie können dann die Sammlungen zerlegen, wenn die Last wächst (Sie müssen wahrscheinlich zuerst die Spielesammlung aufteilen).