向中国和新加坡提供内容时的延迟和加载时间问题

时间:2015-05-26 12:10:06

标签: php mysql amazon-ec2 rds

背景 - 简单地说,我正在使用PHP / MySQL网站并试图解决中国的延迟和减慢加载时间问题。我在弗吉尼亚州和新加坡设立了一个网络服务器实例(EC2),在弗吉尼亚州设立了一个复制到新加坡的RDS。由于AWS RDS副本无法写入,因此新加坡EC2目前正在写入Virginia RDS。

最重要的是,我使用Route 53实现了一个延迟规则,该规则确定了应该将客户端传送到哪个EC2。

Here's a diagram of my setup, if it helps.

问题 - 上面的解决方案减少了从数据库读取时的延迟和加载时间,但是当写入数据库(来自新加坡)时,网站的速度有所降低,因为当然,它正在编写到弗吉尼亚州的DB。

我的猜测是我在亚洲和弗吉尼亚州需要一个主DB,但我不知道如何保持两个主人同步。

1 个答案:

答案 0 :(得分:0)

RDS不支持多主机,您可以设置自己的实例来实现它,但它并非没有一些挑战。在我看来,如果不分析所有可能的解决方案以改善延迟,您将走上使基础设施变得复杂的道路。

中国是一个独特的案例。如果你真的想在中国做生意,你真的需要在国内直接接待。过滤和其他限制可能使从国外开展业务变得困难。在这种情况下,您可能会管理与您的其他商店分开的中国商店。

在投资多数据中心设置之前,我会确保在延迟方面处理所有其他低成本的问题。

  1. 确保Web应用程序响应时间尽可能低。在这里使用opcaches和缓存,调整mysql,使用php-fpm使用nginx代替apache。新的遗物很适合剖析。此处的目标延迟取决于应用程序。
  2. 将所有静态资源移至CDN。如果您使用的是AWS,那么云端就是您的最佳选择。
  3. 选择对大多数客户具有最佳平均延迟的数据中心。如果您的大多数客户位于亚洲和美国,那么美国西部数据中心可能会更好。 (城市之间的路由可能会变得有趣,并非所有路线都采用地理上最有效的路径。这取决于各个ISP之间的协议)
  4. 如果您已完成所有这些操作,并且仍希望沿着多数据中心路径前进。您将不得不设置自己的Mysql多主安装。这条路线可能存在陷阱。延迟可能会带来交易如何运作的问题。