
Ich arbeite an einem Projekt, bei dem viele Client-Geräte in Remote-Umgebungen verteilt sind, in denen Verbindungsverluste häufig und zu erwarten sind. Clients funktionieren auch offline weiter, aber wenn diese Geräte erreichbar sind, empfangen sie Befehle von einer Reihe von Servern in der Cloud und übermitteln ihren Status an diese Server.
Sowohl die Client-Geräte als auch die Server speichern Informationen zum „Kontostand“ und diese Informationen sind an beiden Enden veränderbar. Das heißt, Kontostände können von Benutzern der Cloud-Schnittstelle oder der lokalen Client-Schnittstelle geändert werden, und diese Änderungen können auch vorgenommen werden, wenn der Client offline ist.
Meines Wissens handelt es sich hierbei in gewisser Weise um eine „Multi-Master“-Datenbankkonfiguration. Ich frage mich, welche Projekte es gibt, die bei der Verwaltung dieser Art von Topologie helfen. Gibt es Beispiele für ähnliche Projekte? Oder gibt es andere Architekturen, die eine Überlegung wert sind?
Antwort1
Tungsten kann in einer asynchronen Multi-Master-Architektur eingerichtet werden, was im Wesentlichen Ihr Ziel ist, und kann mit verschiedenen Datenbanken verwendet werden:https://code.google.com/p/tungsten-replicator/
Die Anwendung könnte so eingerichtet werden, dass sie ein lokales MySQL-Backend unter Verwendung von Tungsten verwendet und sich mit den anderen Servern synchronisiert, wenn sie online ist. Wenn sie offline ist, werden die Updates in die Warteschlange gestellt, bis sie wieder online sind. Die Clients sollten über VPN oder Ähnliches verbunden sein (z. B. HTTPS-/SSH-Tunnel).