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

.
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top