【问题标题】:economical way of scaling a php+mysql website扩展 php+mysql 网站的经济方式
【发布时间】:2012-01-18 07:12:26
【问题描述】:

我和我的合作伙伴正在尝试创建一个托管在云中的网站。它有相当大的 ajax 流量,并且后端处理货币交易,所以我们在一些数据库表中需要 ACID。

目前一切都在一台服务器上运行。一些 AJAX 流量缓存在文本文件中。

问题:

  1. 扩展数据库服务器的最佳方法是什么?我想过将 mysql 移动到单独的实例并进行主主复制。然而,这似乎很难,我听说即使使用 InnoDB,我也可能会失去 ACID 属性? Amazon RDS 是一个好的解决方案吗?

  2. Web 服务器是相对无状态的,除了一些自定义日志文件和 ajax 缓存文件。扩展到多个 Web 服务器的好方法是什么?我猜自定义日志文件可以移动到可靠的共享文件系统或数据库,但不确定如何处理跨多个服务器的 AJAX 缓存文件一致性。 (如果网络服务器死了,我不在乎丢失 /var/log/*)

  3. 就性能而言,使用具有更多内核和内存的大型实例可能会更便宜,但最终我需要冗余,所以想知道以低成本实现这一目标的最佳方法是什么。

谢谢

【问题讨论】:

  • 我应该转移到 Serverfault

标签: mysql ajax amazon-web-services scalability redundancy


【解决方案1】:

看看this 的帖子。网上有很多讨论可扩展性的演示文稿。我建议记住几件事:

  • 尽早计划数据分片 [即使您不打算立即执行此操作]
  • 尝试使用 memcached 等机制来限制发送到数据库的查询数量
  • 准备从其他域提供静态内容,从长远来看 - 从 ngin-x-alike 服务器和更高版本的 CDN

冗余 - 取决于您的需求。您的网站可以接受“只读”模式吗?如果是这样 - 使用 mysql 复制 + 静态文件的 rsync 并在故障转移的情况下让您的站点在该模式下工作,直到您恢复主节点。如果您需要高可用性 - 然后查看 drbd 复制 [至少对于 mysql] 或设置自动提升从属服务器成为主节点。

您可能会发现以下内容很有趣:

【讨论】:

  • 谢谢。如果我运行 drdb,写入 ACID 是否兼容?事实上,我什至不确定云实例中的磁盘是否真的符合 ACID。当块设备说完成写入时,它真的完成了吗?我有来自每个用户的大量写入,因此只读模式不可接受。现在 ACID 和高可用性是我主要关心的问题。在最坏的情况下,可以通过支付更多的美元并增加实例来购买性能。再次感谢
  • 取决于你有多偏执。确实,使用虚拟化 [云],您的安全性会降低,存储可能会欺骗您 [您自己在物理服务器中的带有电池备份缓存的 RAID 控制器也会欺骗您.. 哦-恐怖它可能会丢失您的数据.. 我最近迷路了~128MB 的数据.. 因为控制器崩溃]。如果您最关心的是保持数据安全-请考虑组提交和同步复制..在不同的可用区之间[您将获得很大的性能影响]。这是性能/松散数据/成本的意愿和复杂程度之间的权衡。
  • @Limbeh:DRBD 有 3 个协议,A 到 B。A 立即确认写入。 C 等待远程磁盘。与往常一样,您的所有层(文件系统、卷管理......)是否支持磁盘屏障,以及设备是否真的完成了它所说的,完全是另一回事。见drbd.org/users-guide/s-replication-protocols.html
【解决方案2】:

另一种选择是使用可扩展的平台,例如 Amazon Web Services。您可以从一个微型实例开始并配置负载平衡以根据需要启动更多实例。

确定平均资源需求后,您可以根据需要将图像大小调整为更大或更小。

http://aws.amazon.com http://tuts.pinehead.tv/2011/06/26/creating-an-amazon-ec2-instance-with-linux-lamp-stack/ http://tuts.pinehead.tv/2011/09/11/how-to-use-amazon-rds-relation-database-service-to-host-mysql/

Amazon 允许您根据需求进行负载平衡或更改实例大小。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多