Linkedin的构架
StackOverFlow用的是微软的技术。不得不承认在WEB领域微软也有着长足的进步,比如被广为应用的.Net MVC技术。
更多的站点采用LAMP,即Linux,Apache,MySql,PHP/Perl/Python的方案。
LAMP在开发和部署上都相对较轻量化,扩展性也不错,比如Facebook就使用了PHP。但是为了解决性能问题FaceBook将PHP编译为C++来执行。
从根本上讲分布式系统构架可以说是开发语言和平台无关的。选择语言和平台时更多的考虑是能否找到合适的队伍,开发及运维成本如何。比如很多时候能堆硬件的时候可以采用堆硬件的方式。不然增加的开发工作和系统的复杂度只会给整体成本造成不必要的上升。
但是大型站点往往不适合简单的堆硬件。采用必要的分布式构架,和成熟稳定的开发平台是极为必要的。
Linkedin和淘宝都应用了Java技术。淘宝是从LAMP演变到java的,原因有很多,其中淘宝的高并发,大数据量的应用需求是一个极为重要的原因。
过去曾经有文章称,国内的金融系统想照搬国外的方案是不可行的,因为中国的人太多…… 我们一个省的数据量就快赶上欧洲一个国家的了。
Linkedin采用Java则更多的出于整体运维成本的考虑。

上面的理由是比较纯粹的TCO的角度来看待构架的。(Total cost of ownership)
再发几张网上找到的构架图。其实也没有太多新意。个人始终觉得搞大型站点要么是谷歌这样的黑科技一堆的,但是很难学习和复制;要么就学习淘宝这样的国内企业。他们是在应对变态的访问量级的过程中成长起来的。






发表评论
Comment List(3)
麦加C
2014.8.11 19:08
这个基本上是一条能发一条不能发的节奏。
麦加C
2014.8.11 19:08
被这个SSO插件折腾毁了……
麦加C
2014.8.11 19:08
问答不能评论貌似