Como posso configurar um site espelho do PHP e MYSQL entre dois sites distantes?

3

Eu tenho um site que está localizado nos EUA e quero configurar um site espelho na China, o site está usando PHP + MYSQL e a qualidade da rede entre dois servidores é péssima.

Eu tentei configurar uma sincronização de banco de dados entre dois bancos de dados mysql, mas sempre haverá conflitos devido à má qualidade da rede (latência extremamente alta, perda de pacotes e às vezes não é possível estabelecer uma conexão).

Existe alguma maneira melhor de fazer o espelhamento?

    
por Felix Yan 03.05.2011 / 10:04

3 respostas

1

Muitas organizações lidam com esse desafio. Existem várias abordagens padrão:

  1. Espelhe as partes estáticas do site na região remota para que a quantidade de dados obtida de um servidor distante seja minimizada. Isso pode ser ativado por um CDN ou por seu próprio sistema de balanceamento de carga baseado em DNS, por exemplo, F5 GTM para um subdomínio de imagens, etc.
  2. Pareça o site por região com conteúdo exclusivo em cada partição e alguma duplicação de conteúdo manual ou automática quando necessário (possivelmente ativado pelo CMS).
  3. Use um serviço de aceleração de rede, como o akamai, para veicular seu conteúdo hospedado centralmente em regiões remotas em uma rede mais rápida. O serviço não espelha seu conteúdo, mas fornece um caminho otimizado entre o usuário e você com maior confiabilidade e menor latência.

Em determinadas circunstâncias, você pode ter um site dinâmico que não é editado com muita frequência. Em vez de replicação de banco de dados contínua, você pode usar uma abordagem de instantâneo. Isso envolveria fazer backups frequentes, copiá-los para o servidor remoto e restaurá-los em um agendamento.

    
por 31.07.2011 / 04:33
1

I tried set up a database-sync between two mysql databases but, there will always be conflicts due to the bad network quality

Suponho que você esteja falando de atualizações de dados conflitantes.

Então a única solução prática é particionar os sistemas o máximo possível - o que prejudica a disponibilidade do sistema e provavelmente exigirá alterações no código, a menos que você possa isolá-los completamente.

    
por 03.05.2011 / 14:25
1

Se você realmente precisa fazer isso, por que não usar a replicação master do MySQL, também conhecida como replicação circular MySQL link

Dadas as condições de rede ruins, haverá atrasos de replicação, portanto, seus seletos teriam resultados inconsistentes, mas a replicação ainda deve funcionar bem. Outra opção viável seria hospedar em HK, onde você obteria melhor conectividade de rede.

    
por 03.05.2011 / 16:35