预览加载中,请您耐心等待几秒...
1/3
2/3
3/3

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

淘宝网架构:解密淘宝网的开源架构 疯狂代码http://www.CrazyCoder.cn/ĵ:http:/www.CrazyCoder.cn/DataBase/Article2500.html 来源:Linux论坛 淘宝网,是一个在线商品数量突破一亿,日均成交额超过两亿元人民币,注册用户接近八千万的大型电子商务 网站,是亚洲最大的购物网站。那么对于淘宝网这样大规模的一个网站,我猜想大家一定会非常关心整个网站 都采用了什么样的技术、产品和架构,也会很想了解在淘宝网中是否采用了开源的软件或者是完全采用的商业 软件。那么下面我就简单的介绍一下淘宝网中应用的开源软件。 对于规模稍大的网站来说,其IT必然是一个服务器集群来提供网站服务,数据库也必然要和应用服务分开,有 单独的数据库服务器。对于像淘宝网这样规模的网站而言,就是应用也分成很多组。那么下面,我就从应用服 务器操作系统、应用服务器软件、WebServer、数据库、开发框架等几个方面来介绍一下淘宝网中开源软件的 应用。 操作系统 我们首先就从应用服务器的操作系统说起。一个应用服务器,从软件的角度来说他的最底层首先是操作系统。 要先选择操作系统,然后才是操作系统基础上的应用软件。在淘宝网,我们的应用服务器上采用的是Linux操作 系统。Linux操作系统从1991年第一次正式被公布到现在已¾¬走过了十七个年头,在PCServer上有广泛的 应用。硬件上我们选择PCServer而不是小型机,那么Server的操作系统供我们选择的一般也就是 Linux,FreeBSD,windows2000Server或者WindowsServer2003。如果不准备采用微软的一系列产品构建 应用,并且有能力维护Linux或者FreeBSD,再加上成本的考虑,那么还是应该在Linux和FreeBSD之间进行选 择。可以说,现在Linux和FreeBSD这两个系统难分伯仲,很难说哪个一定比另外一个要优秀很多、能够全面的 超越对手,应该是各有所长。那么在选择的时候有一个因素就是企业的技术人员对于哪种系统更加的熟悉,这 个熟悉一方面是系统管理方面,另外一方面是对于内核的熟悉,对内核的熟悉对于性能调优和对操作系统进行 定制剪裁会有很大的帮助。而应用全面的优化、提升性能也是从操作系统的优化开始的。 应用服务器 在确定了服务器的硬件、服务器的操作系统之后,下面我们来说说业务系统的构建。淘宝网有很多业务系统应 用是基于JEE规范的系统。还有一些是CC++构建的应用或者是Java构建的Standalone的应用。那么我们要选 择一款实现了JEE规范的应用服务器。我们的选择是JBossApplcationServer。JBossAS是RedHat的一个开源 的支持JEE规范的应用服务器。在几年前,如果采用Java技术构建互联网应用或者企业级应用,在开源软件中的 选择一般也就是Apache组织的Tomcat、JBoss的JBossAS和Resin。严格意义上讲,Tomcat和Resin并不能 算是一个应用服务器,他们是实现了部分J2EE规范的一个容器。而商业软件的选择就是IBM的WebSphere和 BEA的WebLogic。到了现在,除了JBossAS外,Apache的Geronimo,Sun的Glassfish也都是很优秀的JEE应 用服务器。也给现在的开发人员提供了更多的选择。具体对于目前JEE应用服务器的比较。这边就不在赘述。 在应用服务器前端,我们采用了WebServer做了一次转发,我们选择的Web服务器是大名鼎鼎的Apache。几 年前,Apache几乎是Linux系统上开源WebServer的唯一选择。那个时候虽然也有一些其他的开源的Web Server,但是从功能和稳定性上来说都无法和Apache相对。在今天来说,Lighty也会是一个非常好的选择。 Lighty是一个非常轻量级、占用内存资源也比较少的WebServer。虽然功能上没有Apache强大,但是在不少 场景下,性能是非常出色、强于Apache的。而微软的IIS,就只能工作在Windows的系统上了。并且使用IIS的 话,基本上也就是选择了ISAPI、ASP或者ASP.NET进行Web应用的开发了。 数据库 说完了我们采用的操作系统、应用服务器、WebServer后,下面就来谈谈我们的数据库。在淘宝网的应用中 ,采用了两种关系型数据库管理系统。一个是Oracle公司的Oracle10g,另外一个是SunMySQL的MySQL。 Oracle是一款优秀的、广泛采用的商业数据库管理软件。有很强大的功能和安全性,可以处理相对海量的数据 。而MySQL是一款非常优秀的开源数据库管理软件,非常适合用多台PCServer组成多点的存储节点