Как подключиться к ближайшему RMI-серверу? - PullRequest
1 голос
/ 05 мая 2009

В продолжение моего вопроса Как повысить производительность приложения клиент-серверной архитектуры

Я решил сохранить централизованную базу данных и несколько конфигураций базы данных подчиненного сервера. Я планирую использовать Symmetric DS для репликации между ведомой и главной базой данных. Каждая конфигурация базы данных сервера будет установлена ​​ближе к клиенту. В идеале я хочу, чтобы запрос от клиента направлялся к ближайшей подчиненной базе данных по очевидной причине. Поскольку я использую RMI для подключения к серверу, я хочу знать, есть ли в настоящее время какой-либо продукт / API, который мог бы решить эту проблему?

Любое другое решение, кроме вышеупомянутого, высоко ценится:)

Примечание. Рефакторинг клиентского кода, безусловно, является одной из альтернатив, но поскольку приложение очень велико, оно сопряжено с огромным риском (может нарушить существующий код), отнимает много времени и затрат

1 Ответ

1 голос
/ 05 мая 2009

Посмотрите на распределенное и согласованное хеширование:

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

Barebones, вы должны настроить вариант согласованного хеширования, который будет принимать идентификатор клиента (вместо «ключа») и определять местонахождение ближайшего сервера. Преимущество здесь в том, что если один из подчиненных отключится, ваша инфраструктура будет прозрачно перенаправлена ​​на следующий ближайший сервер.

...