如何在两个远距离站点之间建立 PHP 和 MYSQL 的镜像站点?

如何在两个远距离站点之间建立 PHP 和 MYSQL 的镜像站点?

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

我尝试在两个 mysql 数据库之间建立数据库同步,但是由于网络质量差(极高的延迟、数据包丢失,有时根本无法建立连接),总是会发生冲突。

有没有更好的方法来实现镜像?

答案1

许多组织都在应对这一挑战。有许多标准方法:

  1. 将网站的静态部分镜像到远程区域,以便最大限度地减少从远程服务器获取的数据量。这可以通过 CDN 或您自己的基于 DNS 的负载平衡系统来实现,例如用于图像子域的 F5 GTM 等。
  2. 按地区对网站进行分区,每个分区中大部分都是独特的内容,并在需要时进行一些手动或自动内容复制(可能由 CMS 启用)。
  3. 使用 akamai 等网络加速服务,通过更快的网络将您集中托管的内容传送到远程区域。该服务不会镜像您的内容,而是以更高的可靠性和更低的延迟提供用户和您之间的优化路径。

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

答案2

我尝试在两个 mysql 数据库之间设置数据库同步,但由于网络质量差,总是会发生冲突

我认为你的意思是数据更新冲突。

那么唯一可行的解​​决方案就是尽可能地对系统进行分区 - 这会破坏系统的可用性,并且可能需要更改代码,除非您能够完全隔离它们。

答案3

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

由于网络条件差,复制会延迟,因此您的选择会产生不一致的结果,但复制仍应正常工作。另一个可行的选择可能是在香港托管,那里的网络连接会更好。

相关内容