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)
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?
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.
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.
Pergunta
Fábio Santos S.
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:
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)
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?
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.
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.