如何在两个远程站点之间build立一个PHP和MYSQL的镜像站点?

我有一个位于美国的网站,我想在中国build立一个镜像站点,该站点使用PHP + MYSQL,两台服务器之间的networking质量很差。

我尝试在两个mysql数据库之间build立一个数据库同步,但由于networking质量差(极高的延迟,数据包丢失,有时甚至无法build立连接),总会有冲突。

有没有更好的方法来做镜像?

许多组织处理这个挑战。 有一些标准的方法:

  1. 将站点的静态部分镜像到远程区域,以便从远端服务器获取的数据量最小化。 这可以通过CDN或通过您自己的基于DNS的负载均衡系统启用,例如F5 GTM的图像子域等。
  2. 根据地区划分网站,在每个分区中大部分都是独一无二的内容,并在需要时进行手动或自动内容复制(可能由CMS启用)。
  3. 使用像akamai这样的networking加速服务,可以将您的集中托pipe内容提供给速度更快的networking上的远程地区。 该服务不会镜像您的内容,而是以更高的可靠性和更低的延迟提供用户与您之间的优化path。

在某些情况下,您可能有一个不经常编辑的dynamic网站。 您可能采取快照方式,而不是连续的数据库复制。 这将涉及频繁的备份,将其复制到远程服务器,并按计划进行恢复。

我试着在两个mysql数据库之间build立一个数据库同步,但是由于networking质量不好,总会有冲突

我假设你的意思是冲突的数据更新。

那么唯一可行的解​​决scheme就是尽可能地对系统进行分区 – 这样会削弱系统的可用性,除非你能完全隔离它们,否则可能需要更改代码。

如果你真的需要这样做,为什么不使用MySQL多主复制又名MySQL循环复制链接

鉴于networking条件不好,会有复制延迟,因此您的select将有不一致的结果,但复制应该仍然工作正常。 另一个可行的select可能是在香港举办,你会得到更好的networking连接。