<b>淘宝网技术发展回顾(四):Java时代 脱胎换骨</b>

作者: 来源:未知 2012-03-10 00:19:52 阅读 我要评论 直达商品

  我的师父黄裳@岳旭强曾经说过,“好的架构图布满美感”,一个架构好欠好,年夜审美的角度就能看得出来。后来我看了良多系统的架构,发现这个谈吐根基成立。那么反不美观淘宝前面的两个版本的架构,你看哪个斗劲美?

  

 

  

 

  显然第一个斗劲读假爆后面阿谁显颔首重脚轻,这也注定了它不是一个不变的版本,只存活了不到半年的时刻。2004岁首,SQL Relay的问题解决不了,数据库必需要用Oracle,那年夜哪里动刀?只有换开发说话了。换什媚暌癸言好呢?Java。Java是那时最成熟的网站开发说话,它有斗劲精采的企业开发框架,被世界上主流的年夜规模网站普遍采用,此外有Java开发经验的人才也斗劲多,后续维护成本会斗劲低。

  到2004年上半年,淘宝网已经运行了一年的时刻,这一年堆集了年夜量的用户,也快速的开发了良多功能,那时这个网站已经很复杂了,而且新的需求还在源源不竭的过来。把一个复杂的网站的开发说话换失踪,无异于脱胎换骨,在换的过程中还不能拖慢营业的成长,这无异于边换边跑,对时刻和手艺能力的要求都很是高。做这样的手术,需要请第一流的专家来主刀。此刻再考一下读者,如不美观你在这个创业团队琅缦沔,请什么样的人来做这事?我们的谜底是请Sun的人。没错,就是缔造Java说话的那家公司,世界膳缦慊有比他们更懂Java的了。除此之外,还有一个不为人知的原因,……(此处协调失踪200字,完整版见aliway)

  这帮Sun的工程师简直很强年夜,在笔者2004年尾来淘宝的时辰,他们还在,有幸跟他们共事了几个月。此刻摆在他们面前的问题是用什么法子把一个复杂的网站年夜PHP说话迁移到Java?而且要求在迁移的过程中,不竭止处事,原本系统的bugfix和功能改良不受影响。亲,你若是架构师,你怎么做?有人的谜底是写一个翻译器,如同把中文翻译成英文一样,自动翻译。我只能说你这个设法太超前了,换个说法就是“too simple, sometimes naive”。那时没有,此刻也没有人能做到。他们的年夜致方案是给营业分模块,一个模块一个模块的替代。如用户模块,老的member.taobao.com继续维护,不添加新功能,新的功能先在新的模块上开发,跟老的共用一个数据库,开发完毕之后放到分歧的应用集群上,另开个域名member1.taobao.com,同时替代老的功能,替代一个把老的模块上的功能封锁一个,逐渐的把用户指导到member1.taobao.com,等所有功能都替代完毕之后,封锁member.taobao.com。后来很长时刻琅缦沔都是在用member1这样奇异的域名,两年后有此外一家互联网公司起头做电子商务了,我们发现他们的域名也叫member1.xx.com、auction1.xx.com……

  说了开发模式,再说说用到的Java MVC框架,那时的struts1.x是用的斗劲多的框架,可是用过webwork和struts2的同窗可能知道,struts1.x在多人协作方面有良多致命的弱点,因为没有一个轻量框架作为基本,是以很难扩展,这样架构师对于基本功能和全局功能的节制就很难做到。而阿里巴巴的18个创始人之中,有个架构师,在Jakarta Turbine的基本上,做了良多扩展,打造了一个阿里巴巴自己用的MVC框架WebX (http://www.openwebx.org/docs/Webx3_Guide_Book.html ),这个框架易于扩展,便利组件化开发,它的页面模板撑持JSP和velocity等、持久层撑持ibatis和hibernate等、节制层可以用EJB和Spring(Spring是后来才有的)。项目组选择了这个强年夜的框架,这个框架如不美观那时开源了,也许就没有webwork和struts2什么事了。此外,那时Sun在全世界鼎力推广他们的EJB,虽然淘宝的架构师认为这个东东用不到,但他们仍是死力坚持。在履历了良多次的手艺谈判、争论和争吵之后,这个系统的架构就酿成了下图的样子:

  

 

  Java应用处事器是Weblogic,MVC框架是WebX、节制层用了EJB、持久层是ibatis,此外为了缓解数据库的压力,商品发芽和店肆发芽放在搜索引擎膳缦沔。这个架构图是不是雅观了一点了,亲?

  这帮Sun的工程师开发完淘宝的网站之后,又做了一个很牛的网站,叫“支出宝”。

  其其实任何时辰,开发说话自己都不是系统的瓶颈,营业带来的压力更多的是压到了数据和存储上。膳缦沔一篇也说到,MySQL撑不住了之后换Oracle,Oracle的存储一路头在本机上,后来在NAS上,NAS撑不住了用EMC的SAN存储,再然后Oracle的RAC撑不住了,数据的存储方面就不得不考虑使用小型机了。在2004年的炎天,DBA七公、测试工程师郭芙和架构师行癫,踏上了去北京测试小型机的道路。他们带着小型机回来的时辰,我们像接待翘楚一样的接待他们,因为阿谁是我们最值钱的设备了,价钱表上的数字吓死人。小型机买回来之后我们争相合影,然后Oracle就跑在了小型机上,存储方面年夜EMC低端cx存储到Sun oem hds高端存储,再到EMC dmx高端存储,一级一级的往上跳。

  到此刻为止,我们已经用上了IBM的小型机、Oracle的数据库、EMC的存储,这些工具都是很贵的,那些年可以说是花钱如流水啊。有人说过“钱能解决的问题,就不是问题”,但跟着淘宝网的成长,在不久往后,钱已经解决不了我们的问题了。花钱买豪华的设置装备摆设,也许能撑持1亿PV的网站,但淘宝网的成长其实是太快了,到了10亿怎么办?到了百亿怎么办?在N年往后,我们不得不缔造手艺,解决这些只有世界顶尖的网站才会碰着的问题。后来我们在开源软件的基本长进行自立研发,一步一步的把IOE(IBM小型机、Oracle、EMC存储)都去失踪了。这就如同在《西枷肝⒎琅缦沔,魔鬼们拿到仙人的刀兵会很是厉害,连山公都能够打败,但最牛的仙人是不用这些神器的,他们挥一挥衣袖、翻一下手掌就威力无比。去IOE这一部门会在最后一个章节琅缦惴悍含这里先埋个千里伏笔。

  欲知后事若何,且听下回分化。


  推荐阅读

  影响用户购买几个原因 有的放矢或会提高转化率

一个网站年夜上线到第一个访谒者的到来,然后固定了必然的流量之后,站长们下一步的中心就是若何提高网站用户的转化率了。用户转化率的凹凸和盈利直接挂钩的,所以,若何给用户一个精采的体验,是网站后期工作的重心>>>详细阅读


本文标题:<b>淘宝网技术发展回顾(四):Java时代 脱胎换骨</b>

地址:http://www.lgo100.com/a/22/20120310/38958.html

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
我的评论: 人参与评论
验证码: 匿名回答
网友评论(点击查看更多条评论)
友情提示: 登录后发表评论,可以直接从评论中的用户名进入您的个人空间,让更多网友认识您。
自媒体专栏

评论

热度