Ir para conteúdo
Fórum Script Brasil
  • 0

[Desafio] Replicação Multi-Master


Fábio Santos S.

Pergunta

Olá, amigos!

Sou novo no fórum e entrei com uma problema com um nível de dificuldade que creio ser alto.

Eis meu problema, que me foi apresentado ontem e não sei se serei claro o suficiente:

Trabalho em uma empresa que desenvolveu um sistema online comercial para uma empresa, controlando fluxo de caixa, dados de clientes, etc.

Na empresa cliente,há uma matriz, em uma cidade X, que contém um servidor que armazena dados comuns a todas as filiais (como dados de clientes) e dados individuais de cada filial.

E em várias cidades Y,W,Z, existem filiais, que utilizam o mesmo sistema online.

Problema: como há um único servidor para todas as filiais e como cada filial e a matriz estão distantes geograficamente, tomamos a seguinte decisão:

- Na matriz, manter um servidor que trabalhe como MESTRE com as tabelas de dados comuns às filiais e como ESCRAVO com as tabelas de cada filial.

- Nas filiais, manter um servidor que trabalhe como ESCRAVO com as tabelas de dados comuns às filiais e como MESTRE com as tabelas de cada filial.

Mantendo os dados sincronizados com replicação. As DBs seriam algo como:

TABELAS DATABASE MATRIZ

Mãe - MESTRE

F1 - ESCRAVO

F2 - ESCRAVO

F3 - ESCRAVO

Fn - ESCRAVO

TABELAS DATABASE FILIAL1

Mãe - ESCRAVO

F1 - MESTRE

TABELAS DATABASE FILIAL2

Mãe - ESCRAVO

F2 - MESTRE

TABELAS DATABASE FILIALn

Mãe - ESCRAVO

Fn - MESTRE

Fiz alguns modelos de possíveis soluções para essa situação:

(Cada retângulo é um servidor e cada quadrado interno é uma tabela da DB)

arq1.jpg

O primeiro modelo seria o ideal. Um servidor para a matriz e para cada filial.

Alterações seriam realizadas localmente e a replicação atualizaria os dados para os escravos.

Ponto negativo: É possível um servidor ser escravo de vários mestres?

arq2.jpg

No segundo modelo, as filiais seriam escravas do mestre na tabela Mãe.

Os dados de cada filial seriam atualizadas na matriz através de um dump agendado realizado diariamente.

Ponto negativo: Dados de filiais não estariam sincronizados.

arq3.jpg

No terceiro modelo, seriam instalados, além da matriz, N servidores MySQL para N filiais (virtualmente ou fisicamente).

Ponto negativo: Custo alto. Tanto na aquisição de novos servidores, se feita fisicamente, ou na instalação de várias instâncias no mesmo servidor, se feita virtualmente.

Das 3 soluções que encontrei até o momento, achei a 2 mais interessante, pois é algo que já sei fazer. Porém, essa não mantém os dados sempre atualizados na matriz.

Venho aqui pedir a ajuda de vocês pra solucionar esta situação.

Ah, é! Justificativa: O motivo dessa alteração nos servidores é a questão do tempo de resposta. Como há um único servidor, acessado on-line, para realizar uma simples venda a matriz é acessada diretamente pela Internet, logo, o tempo de resposta não é o ideal.

Novas soluções ou ferramentas para resolver isso podem ser utilizadas.

Vamos fazer um Brainstorm aqui! :D

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...