对于像reddit这样的网站,有很多上/下投票,每个主题都有很多评论,我该怎么办?

Lighttpd / Php或Lighttpd / CherryPy / Genshi / SQLAlchemy?

对于数据库来说,什么会扩展得更好/最快的MySQL(4.1或5?)或PostgreSQL?

有帮助吗?

解决方案

我无法谈论MySQL / PostgreSQL问题,因为我对Postgres的经验有限,但我的硕士研究项目是关于使用CherryPy的高性能网站,如果你使用我不认为你会感到失望CherryPy为您的网站。它可以轻松扩展到商用硬件上的数千个并发用户。

当然,对于PHP来说也是如此,我不知道比较PHP和CherryPy性能的任何合理基准。但是如果你想知道CherryPy是否可以处理每秒大量请求的高流量站点,答案肯定是肯定的。

其他提示

理想的设置将接近

简而言之, nginx 是一个快速轻便的网络服务器/前端代理,具有独特的模块,让我们的它直接从 memcached 的RAM存储中获取数据,而不会访问磁盘或任何动态Web应用程序。当然,如果请求的URL尚未缓存(或者它已过期),则请求照常进入webapp。天才部分是当webapp生成响应时,它的副本将转到memcached,准备重用。

所有这些不仅适用于网页,还适用于AJAX查询/响应。

在文章中'back'服务器是http,具体谈论mongrel。如果后面是FastCGI和其他(更快的?)框架会更好;但它的关键性要低得多,因为nginx / memcached团队吸收了最大的负载。

请注意,如果您的AJAX流量的网址方案设计得很好(REST最好,恕我直言),您可以将大部分数据库放在memcached中,任何POST(将传递给应用程序)都可以抢先更新高速缓存中。

在DB问题上,我会说PostgreSQL比MySQL更好地扩展并且具有更好的数据完整性。对于小型站点,MySQL可能会更快,但据我所知,随着数据库大小的增长,它会显着减慢。 (注意:我从来没有将MySQL用于大型数据库,所以你应该对它的可扩展性有所了解。)但是PostgreSQL肯定能很好地扩展,并且对于高流量来说是个不错的选择站点。

需要更多数据。杰夫有几篇关于同样问题的文章,答案是等到你遇到性能问题。

首先 - 谁正在托管,他们有什么?你的内部天赋技能是什么?你打算雇佣一家外部公司吗?他们推荐什么?一个愿意学习新框架的团队的全新项目?

第二件事是做一些模型 - 接口如何工作。它需要加载和保存哪些数据?我们的想法是保持网络和数据库端之间的流量。例如没有包含大量查询的繁琐页面。等

一旦您对数据要求和流程有了更好的了解 - 然后就数据库设计进行工作。有很多规则要遵循,但其中一个更好的规则是遵循规范化规则(是的,我是一个数据库人为什么?)

现在你有几个页面构建 - 运行你的测试。你有问题吗?是的,现在看看它是什么。页面服务或db拉?然后衡量一个行动方案。

我会选择nginx + php + xcache + postgresql

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top