php - 您如何重写/重新编码网站以使其具有可扩展性?

标签 php ruby-on-rails cakephp scalability scale

<分区>

如何重写网站以使其具有可扩展性?(流量)我主要使用 PHP 和一些 Ruby on Rails,我知道这是一个通用问题。我只是想增加我的知识,所以任何建议都会有用。

提前谢谢你;-)

最佳答案

这是一个相当广泛的问题,很难给你一个明确的答案——但有几个想法:

  • 首先,不要预先优化!
    • 确保您的应用程序有效;这是最重要的事情。
    • 并且,只有在必要时才开始优化。
  • PHP 本身通常可以很好地扩展:
    • 再添加几台 Apache+PHP 服务器,对您的用户进行负载平衡
    • 这很容易奏效
  • 文件系统扩展性不佳/不那么容易:
    • 它不会跨服务器共享
    • 共享文件系统(例如,使用 NFS) 有时会导致问题。
  • 在扩展方面,数据库通常是最难的部分:
    • 拥有多个“写入”服务器很难
    • 拥有多个“读取”服务器(通常使用复制)可能会导致维护困难
    • 如果复制还不够,您将不得不考虑分片,有一天或另一天。
  • 使用大量缓存:您可以使用的缓存越多,对数据库的查询越少,它就越好
    • memcached 很棒,而且扩展性很好:只需添加几台服务器,您的缓存集群就会获得更多 GB 或内存
  • 使用反向代理,这样您的 Apache+PHP 服务器就可以减少工作量,这也有帮助。


还有一些可能会给您一些想法的快速链接:

关于php - 您如何重写/重新编码网站以使其具有可扩展性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357685/

相关文章:

javascript - 从 PHP 回显 HTML 以在网页上的 ajax 请求中显示

php - yii2 中的 afterSave 重定向

ruby-on-rails - rails + capybara : clicking link with evaluate_script freezes webdriver

php - CakePHP 使用 %like% 查找查询

CakePHP 新手问题 : How to add non-database attribute to model?

php - CakePHP 前端/后端应用程序开发

php - 有没有更好的方法来插入记录?

PHP preg_split 忽略转义序列

ruby-on-rails - 在 Rails 中定期(时间间隔)更新模型

ruby-on-rails - 在 ruby​​ 中添加 span 标签链接?