Domanda

In seguito alla mia domanda Come migliorare il prestazioni dell'applicazione di architettura server client

Ho deciso di mantenere un database centralizzato e diverse configurazioni server-database slave. Ho intenzione di utilizzare Symmetric DS per replicare tra il database slave e master. Ogni configurazione del server-database verrebbe installata più vicino al client. Idealmente, desidero che la richiesta da un client instrada al database del server slave più vicino per l'ovvia ragione. Dal momento che sto usando RMI per connettermi al server, voglio sapere se c'è qualche prodotto / API attualmente disponibile, che risolverebbe questo?

Qualsiasi altra soluzione diversa da quella sopra è molto apprezzata :)

Nota: il refactoring del codice client è sicuramente un'alternativa ma poiché l'applicazione è molto grande, è un rischio enorme (può violare il codice esistente), richiedere tempo & amp; costoso.

È stato utile?

Soluzione

Dai un'occhiata a hashing distribuito e coerente:

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

Barebone, avresti impostato una variante di hashing coerente che avrebbe preso l'identificatore del client (al posto della 'chiave') e avrebbe localizzato il server più vicino. Il vantaggio in questo caso è che se uno degli slave si arresta, l'infrastruttura verrà indirizzata in modo trasparente al prossimo server più vicino.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top