Pregunta

Continuando con mi pregunta Cómo mejorar el rendimiento de la aplicación de arquitectura del servidor cliente

Decidí mantener una base de datos centralizada y varias configuraciones de base de datos de servidor esclavo. Planeo usar DS simétrico para replicar entre la base de datos esclava y la base maestra. Cada configuración de base de datos del servidor se instalaría más cerca del cliente. Idealmente, quiero que la solicitud de un cliente se direccione a la base de datos esclava más cercana por la razón obvia. Ya que estoy usando RMI para conectarme al servidor, quiero saber si hay algún producto / API actualmente disponible, ¿cuál podría resolver esto?

Cualquier otra solución que no sea la anterior está muy bien considerada :)

Nota: la refactorización del código del cliente es definitivamente una alternativa, pero como la aplicación es muy grande, es un gran riesgo (puede romper el código existente), la toma de tiempo & amp; caro.

¿Fue útil?

Solución

Eche un vistazo al hashing distribuido y consistente:

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

Barebones, usted configuraría una variante de hashing consistente que tomaría el identificador del cliente (en lugar de la 'clave') y ubicaría el servidor más cercano. El beneficio adicional aquí es que si uno de los esclavos cae, su infraestructura se dirigirá de manera transparente al siguiente servidor más cercano.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top