高性能网站

时间:2010-03-03 09:35:31

标签: database web social-networking

在设计大型社交网站(有很多交易,比如推特)时,我应该使用哪些技术?使用开源解决方案 - 数据库 - 网络服务器 - os

9 个答案:

答案 0 :(得分:10)

正如你所看到的,你选择的并不重要;所有这些网站都有很多流量,但基于非常不同的技术。

答案 1 :(得分:6)

社交网站中最重要的是后端,因为大部分瓶颈都来自那里。您可能想要考虑No-SQL数据库。

还有其他几个像:

至于编程语言,正如其他人所说,这并不重要。但如果你真的无法决定,你可能想要考虑一个非阻塞的网络服务器,如Tornado

答案 2 :(得分:2)

只要您大量使用memcached,无论您选择哪种脚本语言都无关紧要。拥有正确的缓存层次结构是必须的。

答案 3 :(得分:2)

在一天结束时,这是个人喜好的问题。 Twitter使用Ruby on Rails。维基百科在PHP上运行。 Reddit使用名为web.py的Python库,但最初,它是用Lisp编写的。我会说选择你最熟悉的技术。

答案 4 :(得分:2)

雅虎工程师优化高性能网站的好书是High Performance Web Sites: Essential Knowledge for Front-End Engineers。它很好,简短,基本上是一个项目符号指南,通过优化不太好探索的前端,使网站更快地采取步骤。

答案 5 :(得分:1)

作为Joel says

  

全世界的人们都在不断地使用.NET,使用Java和使用PHP来构建Web应用程序。由于技术的选择,它们都没有失败。

选择您最熟悉的“三巨头”(.Net,Java或PHP)中的哪一种 - 众所周知这些技术是可扩展的,您的网站是否可扩展的真正问题是网站的结构和方式代码的质量 - 使用您最熟悉的框架为您提供实现这一目标的最佳机会。

答案 6 :(得分:0)

任何适合您口味的技术,在您的情况下,我认为算法更重要。

答案 7 :(得分:0)

技术,技术,

  • 研究其他比例网站已经使用和完成的内容以及他们遇到的问题比他的成功要少,iTunes上的播客,Youtube上的演讲和采访
  • 查看行业最佳实践并按照学位进行
  • 不要接受别人的话,确保你看到问题或成功,而不是关于它的pr glitz
  • 避免明显不垂直或水平扩展的事物,数据库连接,会话 - cookie等
  • 将nosql存储视为sql替代,减少开销但功能较少
  • 在查看语言/框架时要小心。框架带来了你不需要的大量行李,他们最初加速你并最终减慢你的速度,即你花费更多时间来破解框架而不是构建网站,与语言一样,它做你想做的事情而不是时髦,酷编程等。

答案 8 :(得分:0)

如果您正在构建像Facebook这样的东西,那么您的选择有点受限,Facebook制作了自己的PHP运行时,请检查HipHop For PHP