Como rota para o servidor RMI mais próximo?
-
05-07-2019 - |
Pergunta
Em continuação à minha pergunta Como melhorar a desempenho do servidor de aplicativo cliente arquitetura
Eu decidi manter um banco de dados centralizado e configuração de servidor de banco de dados várias escravo. Eu pretendo usar Symmetric DS para replicar entre o escravo e banco de dados mestre. Cada configuração de servidor de banco de dados seria instalado mais perto do cliente. Idealmente, eu quero o pedido de um cliente para rota para o servidor do banco de dados escravo mais próximo, pela razão óbvia. Desde que eu estou usando RMI para se conectar ao servidor, eu quero saber se há algum produto / API atualmente disponíveis, o que resolveria isso?
Qualquer outra solução do que o descrito acima é altamente considerado:)
Nota: Refatoração o código do cliente é definitivamente uma alternativa, mas uma vez que a aplicação é muito grande, é um risco enorme (pode quebrar o código existente), o tempo de tomada e caro
.Solução
Dê uma olhada em hashing distribuído e consistente:
http://en.wikipedia.org/wiki/Distributed_hash_table#Keyspace_partitioning http://en.wikipedia.org/wiki/Consistent_hashing
Barebones, você faria configurar uma variante do hashing consistente, que levaria o identificador do cliente (em vez de a 'chave') e localize o servidor mais próximo. benefício bônus aqui é que, se um dos escravos vai para baixo, sua infra-estrutura, transparentemente, rota para o próximo servidor mais próximo.