2010-03-03 56 views
6

在为大型社交网站(包含大量交易,如Twitter)进行设计时,应该使用哪些技术?使用开源解决方案 - 数据库 - Web服务器 - OS高性能网站

回答

10

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

+0

的Facebook实际上使用的编译到C++版本PHP,看看http://developers.facebook.com/news.php?story=358&blog=1 –

2

只要你会大量使用memcached,你会选择什么样的脚本语言无关紧要。拥有正确的缓存层次是必须的。

+0

我认为所有这些框架(PHP,asp.net ...)已经内置缓存支持 – Jan

+0

一些做,一些不要(PHP的) 5.2/3,但可以通过APC扩展轻松包含)。事情是,你真的想要一个缓存层次结构。具有多个层(至少3个,我将统计它的持久数据库层)可让您根据其频繁使用情况分发数据。 – aefxx

2

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

1

由于Joel says

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

选择您最了解的“大三”(.Net,Java或PHP) - 这些技术已知可扩展,您的网站是否可以扩展的真正问题是网站是结构化的,代码的质量 - 使用您最熟悉的框架为您提供实现这一目标的最佳机会。

0

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

6

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

还有一些其他类似:

至于编程语言,如其他人所说的,它不管那么多了。但是,如果你真的不能决定,你可能会考虑一个非阻塞的网络服务器,如Tornado

+0

数据库很好的信息。我总是通过关系数据库来回答Twitter和Facebook等网站,但显然不是 – Marius

0

技术,工艺,

  • 研究其他缩放网站都使用了什么和做了什么,他们遇到的问题均小于他的成功,有一次在Youtube上
  • 的iTunes,讲座和访谈播客
  • 外观在行业的最佳做法,并遵循他们的程度
  • 不要人们的话,确保你看到问题或成功,而不是对它的浮华
  • 避免明显的事情,不垂直缩放或水平数据库连接,会话 - cookies等
  • 将nosql存储视为一种可选的sql,但开销较小但功能较少
  • 在查看语言/框架时要小心。框架带有许多你不需要的包袱,它们最初会加速你的速度并最终减慢你的速度,比如你花费更多的时间来攻击框架而不是建立网站,与语言相同它会做你想做的事情而不是流行,很酷编程在等
0

如果你正在建设的东西,如Facebook,那么你的选择是一点点有限的,Facebook的提出了自己的PHP运行时,检查HipHop For PHP