《淘宝技术这十年》读书笔记 (二).Java时代的脱胎换骨和坚若磐石

马云说过“一个好的东西往往是是说不清楚的”,姑且不论这句话的对与错。但我真的很佩服《淘宝技术这十年》这本书的作者子柳,能够通过淘宝的一些故事,按照时间顺序和IT发展的各种技术描述清楚,而且过程中读起来非常有意思。 该读书笔记中参杂了很多原文的知识,因为我实在无法割舍,都挺有意思的;同时记录一些有用的知识,通过这本书能介绍些学过的知识或面试中可能出现的题目及作者所思,文章还是非常有趣的,希望对大家有所帮助!

一.Java时代 脱胎换骨

显然第一个比较好看,第二个显得头重脚轻,这也注定了它不是一个稳定的版本,只存活了不到半年的时间。2004年初,SQLRelay的问题解决不了(不能总这样通过不断地重启保证系统的稳定性),数据库必须要用Oracle,那么从哪里动刀呢?只有换开发语言了。换什么语言好?用Java。 Java是当时最成熟的网站开发语言,它有比较良好的企业开发框架,被世界上主流的大规模网站普遍采用。另外,有Java开发经验的人才也比较多,后续维护成本会比较低。 到2004年上半年,淘宝网已经运行了一年的时间,这一年积累了大量的用户,也快速开发了很多功能,当时这个网站已经很庞大了,而且新的需求还在源源不断地增加。把一个庞大的网站的开发语言换掉无异于脱胎换骨。在换的过程中还不能拖慢业务的发展,这无异于边换边跑,对时间和技术能力的要求都非常高。 做这样的手术,需要请第一流的专家来主刀,现在再考一下大家:亲,如果你在这个创业团队中,请什么样的人来做这件事呢? PS:我的想法是请多隆,不是说“有困难找多隆”吗?他就相当于武侠小说中的扫地僧,也是淘宝的“神”。但他可能也需要自己学习吧!所以这样的答案也是不正确的,《淘宝技术这十年》读书笔记最后一篇博客我也将介绍淘宝网众多的大牛,其中第一位就是多隆。顺便说说,大家知道马云最喜欢的金庸小说里的人物是谁吗?没错,他就是风清扬。当时看到一个新闻,说马云想出演《笑傲江湖》风清扬一角色,找了很多关系,最后还是被导演无情的拒绝了,不知道消息是否真实,但确实挺有意思的!和功能改进不受影响。亲,你是架构师你怎么做? 有人的答案是写一个翻译器,如同把中文翻译成英文一样,自动翻译(现在机器翻译是自然语言处理的重要应用)。我只能说你这个想法太超前了,“too young,too simple, sometimes native”。当时没有,现在也没有人能做到。。,于是后来很长时间里我们都在用member1.taobao.com这个奇怪的域名。一年之后,有另一家互联网公司开始做电子商务,他们的域名也叫member1.xx.com、auction1.xx.com,复制得毫无保留,我们只能会心一笑。

二.MVC框架

当时struts1.x是用得比较多的框架,但是用过webwork和struts2的人可能知道,struts1.x在多人协作方面有很多致命的弱点。由于没有一个轻量框架作为基础,因此很难扩展,这样架构师对于基础功能和全局功能的控制就很难做到。 而阿里巴巴的18个创始人中有个架构师周悅虹,他在Jakarta Turbine的基础上做了很多扩展,打造另一个阿里巴巴自己用的MVC框架WebX: 这个框架易于扩展,方便组件化开发,它的页面模板支持JSP和Velocity等,持久层支持ibatis和hibernate等,控制层可以用EJB和Spring(Spring是后来才有的)。项目组选择了这个强大的框架。 另外,当时Sun在全世界大力推广他们的EJB,虽然淘宝的架构师认为这个东西用不到,但他们还是极力坚持。在经历了很多次的技术讨论、争吵之后,这个系统的架构就变成了下图的形式。

MVC框架是阿里的WebX,控制层用了EJB,持久层是ibatis。另外为了缓解数据库的压力,商品查询和店铺查询放在搜索引擎中。这个架构图是不是好看了一点?)下图是支付宝第一次员工大会。

上面的结构中,引入了搜索引擎iSearch(它是在LAMP[Linux+Apache+MySQL+PHP]系统运行一段时间之后被多隆引进的,换为Oracle之后知识替换一下数据源)。其实这个搜索引擎的原理很简单,就是把数据库里的数据dump(倾倒)成结构化的文本文件后,放在硬盘上,提供Web应用以约定的参数和语法来查询这些数据。 这看起来不难,这些内容先不详细介绍,因为搜索引擎的技术已经足以写好几本书了。。在2004年夏天,DBA七公、测试工程师郭芙和架构师行癫,踏上了去北京测试小型机的道路。他们带着小型机回来的时候,然后Oracle就运行在小型机上;存储方面,从EMC低端CX存储到Sun oemhds高端存储,再到EMC dmx高端存储,一级一级地往上跳。 到2004年底,淘宝网已经有4百多万种商品了,日均4千多万个PV,注册会员达到400万个,全网成交额达10亿元。花钱买豪华的配置,也许能支持1亿个PV的网站,但淘宝网的发展太快,到了10亿个PV怎么办?到了百亿怎么办? PS:在这部分我们看到了很多Java相关的技术,包括MVC(模型model-视图view-控制器controller)框架、hibernate、Spring、搜索引擎技术、IOE等;同时看到了遇到的一个接一个的问题及当时的解决方案。

坚韧是成功的一大要素,只要在门上敲得够久够大声,终会把人唤醒的。

《淘宝技术这十年》读书笔记 (二).Java时代的脱胎换骨和坚若磐石

相关文章:

你感兴趣的文章:

标签云: