¿Cómo enrutar al servidor RMI más cercano?
-
05-07-2019 - |
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.
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.