网站运营
位置:首页>> 网站运营>> 淘宝技术发展(Java时代:脱胎换骨)

淘宝技术发展(Java时代:脱胎换骨)

作者:赵超  发布时间:2012-03-05 20:10:56 

标签:淘宝,java,技术

我的师父黄裳@岳旭强曾经说过,“好的架构图充满美感”,一个架构好不好,从审美的角度就能看得出来。后来我看了很多系统的架构,发现这个言论基本成立。那么反观淘宝前面的两个版本的架构,你看哪个比较美?

显然第一个比较好看,后面那个显得头重脚轻,这也注定了它不是一个稳定的版本,只存活了不到半年的时间。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这一部分会在最后一个章节里面讲,这里先埋个千里伏笔。

欲知后事如何,且听下回分解。

作者:赵超

文章来源:赵超的博客

0
投稿

猜你喜欢

  • 什么是网页快照所谓网页快照,原理是搜索引擎每收录一张网页,就会先把网页进行抓取,并且把网页内容复制并存储起来。搜索引擎并对快照进行分类整理排
  • 在局域网内,ARP攻击依然占有很高比例。众所周知,ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利
  • 多少日ip的网站才能够上吃喝?终于得到一个很好的答案在很多的站长站上问了这个问题,(包括在这,很感谢站长的热心回答),终于,得到了一个觉得很
  • 卖炒货的也已经开始需要建立自己的网店,让更多人可以在网上订购自己的瓜子和糖炒栗子。网店的丰富和普及,使得“办公地点”可以无处不在,很多无需和
  •  由于Godaddy改版,网上的过户教程并不适用了,于是决定把过程记录下来,希望对朋友们有所帮助。感觉很多人还不是很熟悉,现在就把
  • 也许其他行业的朋友们还沉醉年味中,偶年都过完了来着,又开始了忙碌的网络。还是祝大家新年快乐。废话尽量少说。站长时间宝贵。进正题。中国站长普遍
  • 和Google类似,DoubleClick是互联网时代真正的孩子。它把软件作为一种服务,在数据管理中有核心的能力。正如上面所说的,它是互联网
  • 前几天发现顶峰网的百度快照突然后退,这种不正常的现象立即引起了笔者的注意,因为百度快照后退预示着网站出现了一定的问题。曾经听万能导航网的站长
  • DMOZ是什么?Dmoz(The Open Directory Project/ODP)是一个人工编辑管理的目录集合,为 搜索引擎提供结果或
  • 今天我们来讨论下Godaddy主机的密码保护文件夹。密码保护让你能够限制Web登陆你的托管账户目录的行为。启用后,用户首次访问受保护的目录里
  • 网站的推广要随着互联网格局的变化而变化,不能死守着老一套,无论是传统的网站优化、友情链接、论坛博客等推广方式,还是新兴的SNS、游戏、回帖置
  • 我们使用搜索引擎的时候,会发现在主流的搜索引擎搜索结果的下方有一个“相关搜索”,这个相关搜索其实就是搜索引擎记录用户行为的过程.百度率先启用
  • 前一阵互联网出了一件新鲜事,有人通过某个在华外企总裁的相册,找到他拍摄的一些女白领的“私隐照片”,好事者通过网络找出了这个外企女白领的真实姓
  • URL优化的重点就是把内容放在权重高的页面上,以下是各级目录的权重比较。1)目录的权重虽然搜索蜘蛛会捉取3级目录及以上的页面,但是一级目录的
  • 昨日在微博,有站长发布了一张“QQ群”新功能测试图,引发了众多站长关注,图片显示QQ群可以展示论坛的信息,推广论坛内容。据了解,这是康盛公司
  • 有用户问Godaddy怎么把iTunes RSS重新定位到另一位置呢?现在我们就来解决这一问题。如果你想把某个RSS feed重新定位到另外
  • 近日酷6网研发部一名罗姓员工不幸猝死,酷6网昨日发表正式声明,对该员工死因进行了澄清,并对事件的处理进展予以通告。随后,酷6网又向全体员工发
  • 我们了解了DEDECMS的程序目录结构和相关模板的含义,通过第一节,我们对DEDE的模板有了一个初步的认识。在这一节,我将引导大家来分析和了
  • 1、添加网页标题(title)。为每页内容写5-8个字的描述性标题。标题要简练,去掉“the,” “and,”这些不重要的词汇,要说明该页面
  • 随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平及经验也参差不齐,相当
手机版 网站运营 asp之家 www.aspxhome.com