Oracle/支付宝/旺旺

  淘宝网作为个人网站发展的时间其实并不长,由于它太引人注目了,马云在2003年7月就宣布了这个是阿里巴巴旗下的网站,随后在市场上展开了很成功的运作。最著名的就是利用中小网站来做广告,突围eBay在门户网站上对淘宝的广告封锁。上网比较早的人应该还记得那些在右下角的弹窗和网站腰封上一闪一闪的广告。市场部那位到处花钱买广告的家伙,太能花钱了,一出手就是几百万,他被我们称为“大少爷”。

  “大少爷”们做的广告,带来的就是迅速上涨的流量和交易量。在2003年底,MySQL已经撑不住了,技术的替代方案非常简单,就是换成Oracle。换Oracle的原因除了它容量大、稳定、安全、性能高之外,还有人才方面的原因。在2003年的时候,阿里巴巴已经有一支很强大的DBA团队了,有冯春培、汪海(七公)这样的人物,后来还有冯大辉(@fenng)、陈吉平(拖雷)。这样的人物牛到什么程度呢?Oracle给全球的技术专家颁发一些头衔,其中最高级别的叫ACE(就是扑克牌的“尖儿”,够大的吧),被授予这个头衔的人目前全球也只有300多名(名单在这里: http://apex.oracle.com/pls/otn/f?p=19297:3 ),当年全球只有十几名。有如此强大的技术后盾,把MySQL换成Oracle是顺理成章的事情。

  但更换数据库不是只换个库就可以的,访问方式,SQL语法都要跟着变,最重要的一点是,Oracle并发访问能力之所以如此强大,有一个关键性的设计——连接池。但对于PHP语言来说它是放在Apache上的,每一个请求都会对数据库产生一个连接,它没有连接池这种功能(java语言有servlet容器,可以存放连接池)。那如何是好呢?这帮人打探到eBay在PHP下面用了一个连接池的工具,是BEA卖给他们的。我们知道BEA的东西都很贵,我们买不起,于是多隆在网上寻寻觅觅,找到一个开源的连接池代理服务SQL Relay( http://sourceforge.jp/projects/freshmeat_sqlrelay ),这个东西能够提供连接池的功能,多隆对它进行了一些功能改进之后就拿来用了。这样系统的架构就变成了如下的样子:

  

  数据一开始是放在本地的,DBA们对Oracle做调优的工作,也对SQL进行调优。后来数据量变大了,本地存储不行了。买了NAS(Network Attached Storage:网络附属存储),NetApp的NAS存储作为了数据库的存储设备,加上Oracle RAC(real application clusters,实时应用集群)来实现负载均衡。七公说这实际上是走了一段弯路,NAS的NFS(Network File System)协议传输的延迟很严重,但那时侯不懂。后来采购了dell和EMC合作的SAN低端存储,性能一下子提升了10几倍,这才比较稳定了。再往后来数据量更大了,存储的节点一拆二、二拆四,RAC又出问题了。这才踏上了购买小型机的道路。在那段不稳定的时间里,七公曾经在机房住了5天5夜。

  替换完数据库,时间到了2004年春天,俗话说“春宵一刻值千金”,但这些人的春宵却不太好过了。他们在把数据的连接放在SQL Relay之后就噩梦不断,这个代理服务经常会死锁,如同之前的MySQL死锁一样。虽然多隆做了很多修改,但当时那个版本内部处理的逻辑不对,问题很多,唯一解决的办法就是“重启”它的服务。这在白天还好,连接上机房的服务器,把进程杀掉,然后开启就可以了,但是最痛苦的是它在晚上也要死掉,于是工程师们不得不24小时开着手机,一旦收到“SQL Relay进程挂起”的短信,就从春梦中醒来,打开电脑,连上机房,重启服务。后来干脆每天睡觉之前先重启一下。做这事最多的据说是三丰,他现在是淘宝网的总裁。现在我们知道,任何牛B的人物,都有一段苦B的经历。

  微博上有人说“好的架构是进化来的,不是设计来的”。的确如此,其实还可以再加上一句“好的功能也是进化来的,不是设计来的”。在架构的进化过程中,业务的进化也非常迅猛。最早的时候,买家打钱给卖家都是通过银行转账汇款,有些骗子收了钱却不发货,这是一个很严重的问题。然后这伙人研究了paypal的支付方式,发现也不能解决问题。后来这几个聪明的脑袋又想到了“担保交易”这种第三方托管资金的办法。于是在2003年10月,淘宝网上面上线了一个功能,叫做“安全交易”,卖家选择支持这种功能的话,买家会把钱交给淘宝网,等他收到货之后,淘宝网再把钱给卖家。这就是现在的支付宝,在前两天(2012.2.21)年会上,支付宝公布2011年的交易笔数已经是paypal的两倍。这个划时代的创新,其实就是在不断的思索过程中的一个灵光乍现。

  当时开发“安全交易”功能的是茅十八和他的徒弟苗人凤(茅十八开发到一半去上海读MBA去了,苗人凤现在是支付宝的首席业务架构师),开发跟银行网关对接的功能的是多隆。当时多数银行的网站已经支持在线支付了,但多隆告诉我,他们的网关五花八门,用什么技术的都有,必须一家一家去接。而且他们不保证用户付钱了就一定扣款成功、不保证扣款成功了就一定通知淘宝、不保证通知淘宝了就一定能通知到、不保证通知到了就不重复通知。这害苦了苗人凤,他必须每天手工核对账单,对不齐的话就一定是有人的钱找不到地方了,少一分钱都睡不着觉。另外他为了测试这些功能,去杭州所有的银行都办理了一张银行卡。一堆银行卡摆在桌子上,不知道的人还以为这个家伙一定很有钱,其实里面都只是十块八块的。现在我们再一次知道,任何牛B的人物,都必须有一段苦B的经历。

  有人说淘宝打败易趣(eBay中国)是靠免费,其实这只是原因之一。如果说和易趣过招第一招是免费的话,这让用户没有门槛就愿意来,那第二招就是“安全支付”,这让用户放心付款,不必担心被骗。在武侠小说中真正的高手飞花摘叶即可伤人,他们不会局限于一招两招,一旦出手,连绵不绝。而淘宝的第三招就是“旺旺”。其实淘宝旺旺也不是自己生出来的,是从阿里巴巴的“贸易通”复制过来的。从2004年3月开始,“叮咚、叮咚”这个经典的声音就回荡在所有淘宝买家和卖家的耳边,“亲,包邮不?” “亲,把零头去掉行不?”这亲切的砍价声造就了后来的“淘宝体”。有人说中国人就是爱砍价,虽然笔者体会不到砍价成功后有多少成就感,但每次我去菜市场,看到大妈们砍价砍得天昏地暗,那满足的劲头堪比捡到了钱,我就深刻的理解了淘宝旺旺在交易过程中的价值。我猜eBay也体会不到砍价的乐趣,他们一直不允许买卖双方在线聊天,收购了skype之后也没有用到电子商务中去。

  旺旺在推出来没多久,就惹了一个法律方面的麻烦。有个做雪饼的厂家找上门来,说我们侵权了,他们家的雪饼很好吃,牛奶也做得不错,我们都很喜欢。然后我们就在旺旺的前面加了两个字,叫做“淘宝旺旺”。在那个野蛮生长的阶段,其实很多产品都是想到什么就做什么,例如我们还搭建过一个聊天室,但似乎淘宝网不是一个闲聊的地方,这个聊天室门可罗雀,一段时间后就关闭掉了。

  SQL Relay的问题搞得三丰他们很难睡个囫囵觉,那一年开半年会的时候,公司特地给三丰颁了一个奖项,对他表示深切的安慰。但不能总这样啊,于是,2004年的上半年开始,整个网站就开始了一个脱胎换骨的手术。

原文:http://blog.sina.com.cn/s/blog_633219970100xdty.html

淘宝网技术发展回顾(三):Oracle/支付宝/旺旺相关推荐

  1. 淘宝网技术发展回顾(六):Java时代:创造技术-Tair

    Tair TFS 的开发,让淘宝的图片功能得到了充分的发挥.同 TFS 一样,很多技术都是在产品的推动下得到发展的.在讲下面的技术之前,有必要说说那些年,我们一起做过的几个产品. 先说个比较悲剧的-- ...

  2. 淘宝技术发展3(Oracle/支付宝/旺旺)

    淘宝网作为个人网站发展的时间其实并不长,由于它太引人注目了,马云在2003年7月就宣布了这个是阿里巴巴旗下的网站,随后在市场上展开了很成功的运作. 最著名的就是利用中小网站来做广告,突围eBay在门户 ...

  3. 从个人网站到淘宝网 仰观Java时代淘宝的技术发展

    从2003年的一个个人对个人(C2C)的商品交易网站到如今的淘宝网,其实在作为个人网站发展的时间里并不长.那么在这段时间里,淘宝究竟是如何发展的呢?在这篇文章里我们将找到淘宝网的发展历史以及所用到的技 ...

  4. 看淘宝大牛们晒一晒淘宝网技术内幕

    看淘宝大牛们晒一晒淘宝网技术内幕 淘宝网是一个在线商品数量突破一亿,日均成交额超过两亿元人民币,注册用户接近八千万的大型电子商务网站,是亚洲最大的购物网站.那么对于淘宝网这样大规模的一个网站,我猜想大 ...

  5. 淘宝大牛门晒一晒淘宝网技术内幕

    http://wenku.it168.com/redian/taobao/ 淘宝数据库篇 淘宝前端设计篇 淘宝后台架构篇 淘宝存储篇   淘宝网是一个在线商品数量突破一亿,日均成交额超过两亿元人民币, ...

  6. 淘宝网发展史:揭开神秘组织的技术内幕

    一.引言:光棍节的狂欢 "时间到,开抢!"坐在电脑前早已等待多时的小美一看时间已到2011年11月11日零时,便迫不及待地投身于淘宝商城一年一度的大型网购促销活动--"淘 ...

  7. 淘宝网的技术发展史(一)——个人网站时代

    <天下网商·经理人>十月刊开始将连载系列文章<淘宝网的技术发展史>,为读者描述淘宝网在整个发展过程中,所有的主动和被动的技术变革的前因后果. 文/淘宝技术大学培训专家 子柳 前 ...

  8. 淘宝从小到大的发展 - 从呱呱坠地的婴儿到出类拔萃的青年-重读《淘宝技术这十年》

    一:前言 <淘宝技术这十年> –子柳著,北京.电子工业出版社. 我又把这本书重新读了一遍. 为什么重读? 因为以前读的时候,囫囵吞枣,只是看看而已,看过了就过了,了无痕,一点思考也没有留下 ...

  9. 我在淘宝网的自我介绍

    我的花名叫文茂,本名叫张兆坤,来自湖北麻城. 我最初开始工作的时候是做.net程序开发的,后来在05年的时候开始做J2EE的开发工作了,大大小小的项目做了不少,也几经沉浮.面向未来我也困惑过迷茫过,有 ...

最新文章

  1. ioctl kernel 构建注意事项
  2. 家长会:我的发言稿,女儿的信
  3. Web前端开发必备:《Jquery实战》第3版 介绍
  4. 服务器log文件清理,服务器日志切割清理工具(LogCutter)
  5. 有用就存档,没用就删除,当日清理当日的email
  6. 与Maven 3,Failsafe和Cargo插件的集成测试
  7. java并查集找朋友圈_图—并查集(解决朋友圈问题)
  8. mysql begin end 用法_MySQL ------ 游标(CURSOR)(二十六)
  9. Python与机器视觉(x) 颜色直方图
  10. java方法中的循环里的变量_Java中循环声明变量方法
  11. 微信小程序|area组件使用的地址数据文件plus
  12. css的背景图片不显示,wepback打包时,css的背景图片显示不出来,求教!
  13. JAVA Number与Math类
  14. PCDJ DEX 3 for mac(DJ混音打碟工具)
  15. 白盒测试工具CodeTest
  16. 语音文件aac-raw-wav格式转换方法
  17. 展开操作符:一家人就这么被拆散了
  18. 电脑上怎么绘制流程图?三分钟快速绘制流程图的秘诀
  19. 外贸找客户软件:Email Extractor Pro 7.2.X
  20. PPT模板下载(二)--- 新科技、区块链

热门文章

  1. mysql增量同步_在两个MySQL数据库之间实现数据增量同步
  2. tornado python web上传大视频文件
  3. 北航计算机学院机器学习导师,郭玉柱 中文主页 模式识别与机器学习(研究生) 北京航空航天大学教师个人主页系统...
  4. 科研热点|张益唐完成“零点猜想”论文,北大已证实~
  5. Java全局变量(成员变量)和局部变量的区别
  6. 一篇ngork直接使用
  7. 韩顺平 javascript教学视频_学习笔记20_多态经典案例_补讲闭包细节
  8. lombok插件失效解决
  9. 利用函数写出九九乘法表
  10. 你的手机支持无线充电吗?2个优势+4个缺陷,你会如何选择