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

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

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

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

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

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

淘宝网的开源架构 淘宝网,是一个在线商品数量突破一亿,日均成交额超过两亿元人民币,注 册用户接近八千万的大型电子商务网站,是亚洲最大的购物网站。那么对于淘宝 网这样大规模的一个网站,我猜想大家一定会非常关心整个网站都采用了什么样 的技术、产品和架构,也会很想了解在淘宝网中是否采用了开源的软件或者是完 全采用的商业软件。那么下面我就简单的介绍一下淘宝网中应用的开源软件。 对于规模稍大的网站来说,其IT必然是一个服务器集群来提供网站服务, 数据库也必然要和应用服务分开,有单独的数据库服务器。对于像淘宝网这样规 模的网站而言,就是应用也分成很多组。那么下面,我就从应用服务器操作系统、 应用服务器软件、WebServer、数据库、开发框架等几个方面来介绍一下淘宝网 中开源软件的应用。 操作系统 我们首先就从应用服务器的操作系统说起。一个应用服务器,从软件的角度 来说他的最底层首先是操作系统。要先选择操作系统,然后才是操作系统基础上 的应用软件。在淘宝网,我们的应用服务器上采用的是Linux操作系统。Linux 操作系统从1991年第一次正式被公布到现在已经走过了十七个年头,在PC Server上有广泛的应用。硬件上我们选择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系统上开源Web Server的唯一选择。那个时候虽然也有一些其他的开源的WebServer,但是从 功能和稳定性上来说都无法和Apache相对。在今天来说,Lighty也会是一个非 常好的选择。Lighty是一个非常轻量级、占用内存资源也比较少的WebServer。 虽然功能上没有Apache强大,但是在不少场景下,性能是非常出色、强于Apache 的。而微软的IIS,就只能工作在Windows的系统上了。并且使用IIS的话,基 本上也就是选择了ISAPI、ASP或者ASP.NET进行Web应用的开发了。 数据库 说完了我们采用的操作系统、应用服务器、WebServer后,下面就来谈谈我 们的数据库。在淘宝网的应用中,采用了两种关系型数据库管理系统。一个是 Oracle公司的Oracle10g,另外一个是SunMySQL的MySQL。Oracle是一款优 秀的、广泛采用的商业数据库管理软件。有很强大的功能和安全性,可以处理相 对海量的数据。而MySQL是一款非常优秀的开源数据库管理软件,非常适合用多 台PCServer组成多点的存储节点阵列(这里我所指的不是MySQL自身提供的集 群功能),每单位的数据存储成本也非常的低廉。用多台PCServer安装MySQL 组成一个存储节点阵列,通过MySQ