Frage

In Fortsetzung auf meine Frage Wie die zur Verbesserung der Leistung von Client-Server-Architektur Anwendung

Ich habe beschlossen, eine zentrale Datenbank und mehrere Slave-Server-Datenbankkonfiguration zu halten. Ich plane für die Replikation zwischen Slave und Master-Datenbank Symmetric DS zu verwenden. Jede Server-Datenbankkonfiguration würde näher an das Client installiert. Im Idealfall möchte ich die Anfrage von einem Client auf dem Weg zur nächsten Slave-Server-Datenbank aus dem offensichtlichen Grunde. Da ich RMI bin mit dem Server zu verbinden, möchte ich wissen, ob es irgendein Produkt / API, die gegenwärtig verfügbar ist, die dieses Problem lösen würden?

Jede andere Lösung als die über eine hoch angesehen:)

Hinweis: Refactoring den Client-Code ist auf jeden Fall eine Alternative, aber da die Anwendung sehr groß ist, ist es ein großes Risiko (kann vorhandenen Code brechen), Zeit nehmen und teuer

.
War es hilfreich?

Lösung

Werfen Sie einen Blick auf verteilte und konsistente Hashing:

http://en.wikipedia.org/wiki/Distributed_hash_table#Keyspace_partitioning http://en.wikipedia.org/wiki/Consistent_hashing

Barebones, würden Sie Setup eine Variante von konsistentem Hashing, die die Kennung des Client (anstelle des ‚Schlüssels‘) und suchen Sie den nächstgelegenen Server nehmen würden. Bonus Vorteil hier ist, dass, wenn einer der Sklaven untergeht, Ihre Infrastruktur wird transparent Weg zum nächsten nächstgelegenen Server.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top