所在的位置: java >> 历史起源 >> 淘宝网的出身

淘宝网的出身

还有分页怎么处理?关键字查询怎么处理?这些东西交给程序员来做的话会很悲催,于是行癫在淘宝的第一个架构上的作品就来解决了这个问题,他写了一个数据库路由的框架 dbroute,这个框架在淘宝的 oracle 时代一直在使用

这些杂七杂八的修改,我们对数据分库、放弃 ejb、引入 spring、加入缓存、加入 cdn、采用开源的 jboss,看起来没有章法可循,其实都是围绕着提高容量、提高性能、节约成本来做的,由于这些不算大的版本变迁,我们姑且叫它2.1版吧,这个版本从构图上来看有 3 只脚,是不是稳定了很多?

11月11日,这个棍子最多的日子被网民自我调侃的变成了一个节日——“光棍节”而淘宝网又用疯狂的折扣促销给它Java学习资料赋予了另外一个意义——“购物狂欢节”2011年11月11日这一天,淘宝商城与淘宝网交易额之和突破52亿,这个数字是“购物天堂”香港一天零售总额8.5亿的6倍

二、个人网站

上一篇还说过,为了减少数据库的压力,提高搜索的效率,我们引入了搜索引擎随着数据量的继续增长,到了 2005 年,商品数有 1663 万,pv 有 8931 万,注册会员有 1390 万,这给数据和存储带来的压力依然山大,数据量大,性能就慢亲,还有什么办法能提升系统的性能?一定还有招数可以用,这就是缓存和 cdn(内容分发网络)

cdn 这个工作相对比较独立,跟别的系统一样,一开始我们也是采用的商用系统后来随着流量的增加,商用的系统已经撑不住了,lvs 的创始人章文嵩博士带人搭建了淘宝自己的 Java培训cdn 网络在本文的引言中我说过淘宝的 cdn 系统支撑了 800gbps 以上的流量,作为对比我们可以看一下国内专业做 cdn 的上市公司 chinacache 的介绍 ——“chinacache……是中国第一的专业 cdn 服务提供商,向客户提供全方位网络内容快速分布解决方案作为首家获信产部许可的 cdn 服务提供商,目前 chinacache 在全国 50 多个大中城市拥有近 300 个节点,全网处理能力超过 500gbps,其 cdn 网络覆盖中国电信、中国网通、中国移动、中国联通、中国铁通和中国教育科研网等各大运营商” ——这样你可以看得出淘宝在 cdn 上面的实力,这在全世界都是数一数二的另外因为 cdjava编程思想n 需要大量的服务器,要消耗很多能源(消耗多少?在前两年我们算过一笔帐,淘宝上产生一个交易,消耗的电足以煮熟 4 个鸡蛋)这两年章文嵩的团队又在研究低功耗的服务器,在绿色计算领域也做了很多开创性的工作淘宝 cdn 的发展需要专门一个章节来讲,想先睹为快的可以看一下笔者对章文嵩的专访

有些技术的发展是顺其自然的,有些却是突如其来的到 2007 年的时候,我们已经有几百台应用服务器了,这上面的 java 应用服务器是 weblogic,而 weblogic 是非常贵的,比这些服务器本身都贵有一段时间多隆研究了一下 jboss,说我们换掉 weblogic 吧,于是又省下了不少银两那一年,老马举办了第一届的“网侠大Java程序员会”,会上来的大侠中有一位是上文提到的章文嵩,还有一位曾经在 jboss 团队工作,我们也把这位大侠留下了,这样我们用起 jboss 更加有底气了

一、引言:光棍节的狂欢

以上这些技术数据可能已经让一些同学产生不适的感觉,为了让更多的人读懂这本书,我们从技术的角度来看,小美访问淘宝网的时候,网站上发生了什么事情参考资料:《技术普及帖:你刚才在淘宝上买了一件东西》,来自南京邮电大学孙放同学

小美跳起来,大叫一声“欧耶!”

第1页:

小美不知道,就在11日零点过后的这一分钟内,全国有342万人和她一起涌入淘宝商城当然,她更不知道,此时此刻,在淘宝杭州的一间办公室里,灯火通明,这里是“战时指挥部”,淘宝技术部的一群工程师,主要优点正在紧盯着网站的流量和交易数据白板上是他们刚刚下的注,赌谁能最准确地猜中流量峰值和全天的交易总额他们的手边放着充足的食物和各类提神的饮料

第2页:二、个人网站

网民感受到的是疯抢的喜悦,而网站的技术人员感受到的却是“压力山大”就如同你家办酒席,宴请左邻右舍,这个办起来容易倘若宴请十里八乡所有的人,吃饭的人自然开心,但却不是一般人家能够办得起来的能办得起来如此盛宴者,需要强大的财力物力、组织能力、技术实力(例如做这么多菜,你的炒锅一定要是“分布式的”、“可复制的”、“可扩展的”,洗菜切菜要有“工作流引擎”,上菜的路径要用图论来计算出来,甚至连厨房的下水道都要重新设计)

【it168 评论】

为了有个更直观的对比,我Java的历史有哪些们说一个同行,他在2011年光棍节之前做促销,流量上去之后,达到12gbps(他们有这么大的流量,老板很高兴,在微博上面说了这个数据),这时候流量达到了极限,网站几乎挂掉,用户无法下订单而淘宝网光棍节当天网络的流量最高达到800多gbps,带给各家银行和快递公司的流量也让他们压力山大,如临大敌(后来,他们以能够撑住淘宝带来的流量为荣而到处宣传)另外如果你在网上购买过火车票的话,更能体会到网站能支持多大的流量有多重要但这不是一朝一夕做出来的,也不是有钱就能办到的

在说出这个答案之前,容我先卖个关子,介绍一下这个创业团队的成员:三个开发工程师(虚竹、三丰、多隆)、一个ued(二当家)、三个运营(小宝、阿珂、破天)、一个经理(财神)、还有就是主要优点马云和他的秘书当时对整个项目组来说压力最大的就是时间,怎么在最短的时间内把一个从来就没有的网站从零开始建立起来?了解淘宝历史的人知道淘宝是在2003年5月10日上线的,这之间只有一个月要是你在这个团队里,你怎么做?我们的答案就是:买一个来

上一篇说过,采用 ejb 其实是和 sun 的工程师妥协的结果,在他们走了之后,ejb 也逐渐被冷落了下来在 05、06年的时候,spring 大放异彩,正好利用 spring 的反射(ioc)模式替代了 ejb 的工厂模式,给整个系统精简了很多代码

数据库这么分了之后,应用程序有麻烦了,如果我是一个买家,买的商品有 db1 的也有 db2 的,要查看“我已买到的宝贝”的时候,应用程序怎么办Java学习?必须到两个数据库里面分别查询出来对应的商品要按时间排序怎么办?两个库里面“我已买到的宝贝”全部查出来在应用程序里面做合并后来随着业务的发展,这种分库的第二个目的 ——容灾的效果就没有达到像评价、投诉、举报、收藏、我的淘宝等很多地方,都必须同时连接 db1 和 db2,哪个库挂了都会导致整个网站挂掉

回想起刚用缓存那段时间,笔者还是个小菜鸟,有一个经典的错误常常犯,就是数据库的内容更新的时候,忘记通知缓存系统,结果在测试的时候就发现我改过的数据怎么在页面上没变化呢后来做了一些页面上的代码,修改 css 和 js 的时候,用户本地缓存的信息没有更新,页面上也会乱掉,在论坛上被人说的时候,我告诉他用 cjava学习资料trl+f5 刷新页面,然后赶紧修改脚本文件的名称,重新发布页面学会用 ctrl+f5 的会员对我佩服的五体投地,我却惭愧的无地自容

当时我们是从一个美国人那里买来的一个网站系统,这个系统的名字叫做phpauction(他们的官方网站 http://mon)这么做的目的除了增加了数据库的容量之外,还有一个就是做容灾,万一一个数据库挂了,整个网站上还有一半的数据能操作

一阵急促的电话声响起来,是前线部门询问数据的,工程师大声报着:“第1分钟,进入淘宝商城的会员有342万”过一会工程师主动拿起电话:“交易额超过1亿了,现在是第8分钟”接下来,“第21分钟,刚突破2亿”“第32分钟,3亿了”“第1个小时,4.39亿”这些数据随后出现在微博上,Java培训引起一片惊呼

他们去了一个神秘的据点——湖畔花园小区的一套未装修的房子里,房子的主人是马云这伙人刚进去的时候,马云给他们布置了一个任务,就是在最短的时间内做出一个个人对个人(c2c)的商品交易的网站现在出一个问题考考读者,看你适不适合做淘宝的创业团队亲,要是让你来做,你怎么做?

2003年4月7日,马云,在杭州,成立了一个神秘的组织他叫来十位员工,要他们签了一份协议,这份协议要求他们立刻离开阿里巴巴,去做一个神秘的项目这个项目要求绝对保密,老马戏称“连说梦话被老婆听到都不行,谁要是透漏出去,我将追杀到天涯海角”这份协议是英文版的,匆忙之间,大多数人根本来不及看懂,但出于对老马的信任,都卷起铺盖离开了阿里巴巴

“完蛋了java就业前景!”突然有人大喝一声,所有的眼睛都紧张的盯着他,只见他挠挠头,嘿嘿的笑道“我赌的少了,20亿轻松就能过了,我再加5亿”,他跑去白板边上把自己的赌注擦去,写上25,接下来有人写上28,有人写上30,有人跑到微博上开下盘口,同事们纷纷转载下注接下来的这24个小时,战时指挥部的工程师们都不能休息,他们盯着网站的各种监控指标,适时的调整机器和增减功能顶住第一波高峰之后,这些人开始忙里偷闲的给自己买东西,大家互相交流着哪家买的移动硬盘靠谱,哪家衣服适合自己的女朋友,不时的有人哀嚎宝贝被人抢了、信用卡额度不够了同时,旁边白板上的赌注越下越大

你可以想象,九千万的访问量,有多少是在商品详情页面?访问这个页面的时候,数据全都是只读的(全Java学习资料部从数据库里面读出来,不写入数据库),如果把这些读操作从数据库里面移到内存里,数据库将会多么的感激涕零在那个时候我们的架构师多隆大神,找到了一个基于 berkeley db 的开源的缓存系统,把很多不太变动的只读信息放了进去其实最初这个缓存系统还比较弱,我们并没有把整个商品详情都放在里面,一开始把卖家的信息放里面,然后把商品属性放里面,商品详情这个字段太大,放进去受不了说到商品详情,这个字段比较恐怖,有人统计过,淘宝商品详情打印出来平均有 5 米长,在系统里面其实放在哪里都不招人待见笔者清楚的记得,我来淘宝之后担任项目经理做的第一个项目就是把商品详情从商品表里面给移出来这个字段太大了,查询商品信息java学习资料的时候很多都不需要查看详情,它跟商品的价格、运费这些放在一个表里面,拖慢了整个表的查询速度在 05 年的时候,我把商品详情放在数据库的另外一张表里面,再往后这个大字段被从数据库里面请了出来,这也让数据库再一次感激涕零

淘宝能够举办如此盛宴,网站的技术实力可见一斑淘宝网拥有全国最大的hadoop分布式计算集群之一,日新增数据50tb,有40pb海量数据存储分布在全国各地80多个节点的cdn网络,支持的流量超过800gbps淘宝的搜索引擎能够对数十亿的商品数据进行实时搜索,另外还拥有自主研发的文件存储系统和缓存系统,以及java中间件和消息中间件系统,这一切组成了一个庞大的电子商务操作系统另外从商业数据上来看,amazoJava的优点有哪些n的财报显示2011年完成了大约480亿美金的交易额,ebay 2011年财报全年完成了大约600亿美金的交易额(不包括其独立的汽车交易平台)不管从交易额、商品数量、同比增速等指标上看,淘宝网均远超于此,是目前全球最大的电子商务平台(由于淘宝非上市公司,未公布2011年业绩,以上内容来自淘宝网技术副总裁@_行癫 的微博)

架构图如下:

正如同很多人或组织成功了以后,就会为自己的出身编造一个美丽的传说淘宝网的出身,网上也有非常多的传说,下面我们就从它的出生开始讲起

“时间到,开抢!”坐在电脑前早已等待多时的小美一看时间已到2011年11月11日零时,便迫不及待地投身于淘宝商城一年一度的大型网购促销活动——“淘宝双11购物狂欢节”小美打开早已收藏好的宝贝——某品牌的雪地Java学习靴,飞快的点击购买,付款,一回头发现3000双靴子已被抢购一空

买一个网站显然比做一个网站要省事一些,但是他们的梦想可不是做一个小网站而已,要做大,就不是随便买个就行的,要有比较低的维护成本,要能够方便的扩展和二次开发那接下来就是第二个问题:买一个什么样的网站?答案是:轻量一点的,简单一点的,于是买了这样一个架构的网站:lamp(linux+apache+mysql+php)这个直到现在还是一个很常用的网站架构模型这种架构的优点是:无需编译,发布快速,php功能强大,能做从页面渲染到数据访问所有的事情,而且用到的技术都是开源的,免费

到现在为止,整个商品详情的页面都在缓存里面了,眼尖的读者可能会发现现在的商品java主要特点详情不全是“只读”的信息了,这个页面上有个信息叫“浏览量”,这个数字每刷新一次页面就要“写入”数据库一次,这种高频度实时更新的数据能用缓存吗?如果不用缓存,一天几十亿的写入,数据库会怎么样?一定会挂掉那怎么办?亲……先不回答你(下图不是广告,让你看看浏览量这个数据在哪里)

以上对比的这些网站,也许读者很容易就猜到是哪一家,这里拿出来作对比,绝对没有嘲笑人家的意思,采用通常的网站技术方案,能做到这种程度已经不错了任何网站的发展都不是一蹴而就的,在什么样的阶段采用什么样的技术在发展的过程中网站会遇到各种各样的问题和业务带来的压力,正是这些原因才推动着技术的进步和发展,而技术的发展又会反过来促进业务的更大Java工作好不好找提升二者互为因果,相互促进如今淘宝网的流量已经是全球排名第12、国内排名第3(美国的ebay全球排名23,国内前两名是百度和腾讯)淘宝网的系统也从使用一台服务器,到采用万台以上的服务器本书就为大家描述淘宝网在整个发展过程中,所有的主动和被动的技术变革的前因后果,这由很多有趣的故事组成


北京治疗白癜风要花多少钱


转载请注明:http://www.jiaju1314.com/lsqy/395.html

  • 上一篇文章:
  •   
  • 下一篇文章: