2021-07-07《淘寶技術(shù)這十年》2003-2013讀書筆記

《淘寶技術(shù)這十年》2003-2013

NAS(Network Attached Storage淤翔,網(wǎng)絡(luò)附屬存儲(chǔ))

NetAPP(Network Appliance,美國網(wǎng)絡(luò)存儲(chǔ)技術(shù)有限公司)

RAC(Real Application Clusters眯勾,實(shí)時(shí)應(yīng)用集群)

NFS(Network File System,網(wǎng)絡(luò)文件系統(tǒng))


好的架構(gòu)是進(jìn)化來的紧唱,不是設(shè)計(jì)來的一疯。

好的功能也是進(jìn)化來的,不是設(shè)計(jì)來的炬搭。

好的架構(gòu)圖充滿美感蜈漓,一個(gè)架構(gòu)好不好,從審美的角度就能看出來宫盔∪谒洌【判斷一個(gè)架構(gòu)好不好之前,需要積累發(fā)現(xiàn)不好的經(jīng)驗(yàn)灼芭。外行看熱鬧有额,內(nèi)行看門道。經(jīng)歷了不好才能知道“好”是什么樣彼绷∥∮樱】



淘寶收款方式

階段一:最早,買家打給賣家都是通過銀行轉(zhuǎn)賬匯款寄悯,有些騙子收了錢卻不發(fā)貨萤衰,干脆逃之夭夭。一個(gè)人這么干之后热某,很多人都學(xué)會(huì)了腻菇。

階段二:淘寶網(wǎng)這伙人開始研究防騙子的解決方案,他們看了Paypal的支付方式昔馋,發(fā)現(xiàn)不能解決問題筹吐。研究了類似QQ幣的東西,想弄個(gè)“淘寶幣”秘遏,發(fā)現(xiàn)也不行丘薛。后來有人把這些想法糅合起來,想到了“擔(dān)保交易”這種第三方托管資金的方法邦危。

于是在2003年10月洋侨,淘寶網(wǎng)上線了一個(gè)功能,叫做“安全交易”倦蚪,賣家如果選擇支持這種功能希坚,買家就會(huì)把錢交給淘寶網(wǎng),等他收到貨之后陵且,淘寶網(wǎng)再把錢給賣家裁僧。這就是現(xiàn)在的“支付寶”。這個(gè)功能最早是讓賣家可選的,因?yàn)檫@會(huì)延遲他收款的周期聊疲。

但一旦賣家用了這個(gè)之后茬底,就發(fā)現(xiàn)交易量猛增,一年之后获洲,幾乎所有的賣家都選擇擔(dān)保交易阱表,到后來干脆所有的交易必須走擔(dān)保交易。在2012年支付寶的年會(huì)上贡珊,支付寶公布2011年的交易筆數(shù)已是Paypal的兩倍最爬。

這個(gè)劃時(shí)代的創(chuàng)新,其實(shí)就是在不斷思索過程中的一個(gè)靈光乍現(xiàn)飞崖。

當(dāng)時(shí)多數(shù)銀行的網(wǎng)站已經(jīng)實(shí)現(xiàn)在線支付烂叔,但他們的網(wǎng)關(guān)五花八門,用什么技術(shù)的都有固歪,必須一家一家地去接。而且銀行網(wǎng)關(guān)不保證用戶付錢后就一定扣款成功,不保證扣款成功后就一定通知淘寶,也不保證同志淘寶后就一定到賬浪感,一級(jí)不保證通知到了就不重復(fù)通知哺徊。

苗人鳳必須每天手工核對(duì)賬單,少一分錢就睡不著覺垫蛆,因?yàn)橘~對(duì)不齊就一定是有人的錢找不到地方了,這可是天大的問題。

另外他為了測(cè)試這些功能判帮,去杭州所有的銀行都辦理了一張銀行卡。一大堆銀行卡擺在桌子上溉箕,不知道的人還以為他一定很有錢晦墙,其實(shí)里面都只是十元八元的。


淘寶和易趣(eBay中國)過招

和易趣過招第一招:免費(fèi)肴茄。讓用戶無需成本就能進(jìn)來晌畅。

和易趣過招第二招:安全支付。讓用戶放心付款寡痰,不必?fù)?dān)心被騙抗楔。

和易趣過招第三招:旺旺。淘寶旺旺不是自己生出來的拦坠,是從阿里巴巴的“貿(mào)易通”復(fù)制過來的连躏。【不要重新發(fā)明輪子】

eBay不允許買賣雙方在線聊天贞滨,收購了Skype之后也沒有用到電子商務(wù)中去入热。

旺旺推出沒多久,做雪餅的旺旺找上門來說淘寶侵權(quán)了,然后改名為淘寶旺旺才顿。



淘寶網(wǎng)2004年從PHP語言轉(zhuǎn)換成了Java語言莫湘。

遇到的問題:2004年初,SQL Relay的問題解決不了郑气,數(shù)據(jù)庫必須要用Oracle幅垮,那么從哪里開始動(dòng)刀呢?只有換開發(fā)語言了尾组。

為什么換Java:1.Java是當(dāng)時(shí)成熟的網(wǎng)站開發(fā)語言忙芒,它有比較良好的企業(yè)開發(fā)框架,被世界上主流的大規(guī)模網(wǎng)站普遍采用讳侨。2.有Java開發(fā)經(jīng)驗(yàn)的人比較多呵萨,后續(xù)維護(hù)成本比較低。

請(qǐng)誰來換跨跨?請(qǐng)sun公司的人潮峦。原因一,他們是創(chuàng)造Java語言的那家公司勇婴,沒有人比他們更懂Java忱嘹。原因二,eBay的系統(tǒng)剛剛從C++改到Java耕渴,而且就是請(qǐng)sun的工程師改造成Java架構(gòu)的拘悦。他們不僅更懂Java,而且更懂eBay橱脸。

需求:要求在遷移過程中础米,不停止服務(wù),原來系統(tǒng)的bugfix和功能改進(jìn)不受影響添诉。

淘寶網(wǎng)的做法:他們的大致方案是給業(yè)務(wù)分模塊屁桑,一個(gè)模塊一個(gè)模塊地漸進(jìn)式替換。

如用戶模塊吻商,老的member.taobao.com繼續(xù)維護(hù)掏颊,不斷添加新功能。新功能在新的模塊上開發(fā)艾帐,跟老的模塊共用一個(gè)數(shù)據(jù)庫乌叶,開發(fā)完畢之后放到不同的應(yīng)用集群上,

另開一個(gè)域名member1.taobao,com柒爸,同時(shí)再替換老的功能准浴,替換一個(gè),就把老的模塊上的功能關(guān)閉一個(gè)捎稚,逐漸把用戶引導(dǎo)到member1.taobao.com乐横,等所有的功能都替換完之后求橄,關(guān)閉member.taobao.com。

從設(shè)計(jì)上來看葡公,這個(gè)member1的二級(jí)域名應(yīng)該是一個(gè)過渡狀態(tài)罐农,但我們把member域名的代碼下線后,發(fā)現(xiàn)很難把member1切換回member催什,因?yàn)橛行┑胤桨焰溄訉懰懒恕?/p>

于是后來很長(zhǎng)時(shí)間里涵亏,我們都是在用member1.taobao.com這樣奇怪的域名。

Java MVC框架:當(dāng)時(shí)的struts1.x是用得比較多的框架蒲凶,但是用過webwork和struts2的人可能知道气筋, struts1.x在多人協(xié)作方面有很多致命的弱點(diǎn),由于沒有一個(gè)輕量框架作為基礎(chǔ)旋圆,因此宠默,很難擴(kuò)展,這樣架構(gòu)師對(duì)于基礎(chǔ)功能和全局功能的控制就很難做到灵巧。

而阿里巴巴的18個(gè)創(chuàng)始人之中搀矫,有個(gè)架構(gòu)師周悅虹,他在Jakarta Turbine的基礎(chǔ)上做了很多擴(kuò)展孩等,打造了一個(gè)阿里巴巴自己用的MVC框架WebX(http∶//www.openwebx. org/docs/Webx3_Guide_Book.html)艾君,這個(gè)框架易于擴(kuò)展,方便組件化開發(fā)肄方,它的頁面模板支持JSP和Velocity等,持久層支持ibatis和hibernate等蹬癌,控制層可以用EJB和Spring(Spring是后來才有的)权她。項(xiàng)目組選擇了這個(gè)強(qiáng)大的框架。另外逝薪,當(dāng)時(shí)Sun在全世界大力推廣他們的EJB隅要,雖然淘寶的架構(gòu)師認(rèn)為這個(gè)東西用不到,但他們還是極力堅(jiān)持董济。在經(jīng)歷了很多次的技術(shù)討論步清、爭(zhēng)論甚至爭(zhēng)吵之后,這個(gè)系統(tǒng)的架構(gòu)就變成了下圖的形式虏肾。

MVC框架是阿里的WebX廓啊,控制層用了EJB,持久層是ibatis封豪。

另外谴轮,為了緩解數(shù)據(jù)庫的壓力,商品查詢和店鋪查詢放在搜索引擎中吹埠。

支付寶

Sun的這幫工程師開發(fā)完淘寶的網(wǎng)站之后第步,用同樣的架構(gòu)又做了一個(gè)很牛的網(wǎng)站疮装,叫“支付寶”。(上一篇說過支付寶最初是淘寶上的“安全交易”功能粘都,這個(gè)功能后來獨(dú)立出來廓推,成立了一個(gè)網(wǎng)站,也成立了一個(gè)公司翩隧,就是現(xiàn)在的支付寶樊展。把支付寶從淘寶分出去的人,就是Sun公司的這幾個(gè)人鸽心。)

上面的架構(gòu)中滚局,引入了搜索引擎iSearch(前文說過,iSearch其實(shí)是在LAMP系統(tǒng)運(yùn)行一段時(shí)間之后被多隆引進(jìn)的顽频,換為Oracle之后只是替換一下數(shù)據(jù)源)藤肢。

iSearch搜索引擎的原理:很簡(jiǎn)單,就是把數(shù)據(jù)庫里的數(shù)據(jù)dump(傾倒)成結(jié)構(gòu)化的文本文件后糯景,放在硬盤上嘁圈,提供Web應(yīng)用以約定的參數(shù)和語法來查詢這些數(shù)據(jù)。

需要做到快速更新數(shù)以億計(jì)的信息蟀淮,以及保證非常高的容量和并發(fā)量最住。

場(chǎng)景:你在淘寶上發(fā)布一件商品,過了1個(gè)小時(shí)還搜不到怠惶,肯定要郁悶了涨缚。



其實(shí)在任何時(shí)候,開發(fā)語言本身都不是系統(tǒng)的瓶頸策治,業(yè)務(wù)帶來的壓力更多的存在于數(shù)據(jù)和存儲(chǔ)方面脓魏。

前面也說到,MySQL撐不住之后換為Oracle通惫,Oracle的存儲(chǔ)一開始在本機(jī)上茂翔,后來在NAS上,NAS撐不住了用EMC的SAN存儲(chǔ)履腋,再后來珊燎,Oracle的RAC撐不住了,數(shù)據(jù)的存儲(chǔ)方面就不得不考慮使用小型機(jī)遵湖。悔政、

在2004年夏天,DBA七公奄侠、測(cè)試工程師郭芙和架構(gòu)師行癲卓箫,踏上了去北京測(cè)試小型機(jī)的道路。他們帶著小型機(jī)回來的時(shí)候垄潮,我們像歡迎領(lǐng)袖一樣歡迎他們烹卒,因?yàn)槟鞘俏覀冏钪靛X的設(shè)備闷盔,價(jià)格表上的數(shù)字嚇?biāo)廊恕P⌒蜋C(jī)買回來之后旅急,我們爭(zhēng)相合影逢勾,然后Oracle就運(yùn)行在了小型機(jī)上,存儲(chǔ)方面藐吮,從EMC低端CX存儲(chǔ)到Sun oem hds高端存儲(chǔ)溺拱,再到EMC dmx高端存儲(chǔ),一級(jí)一級(jí)地往上跳谣辞。

到2004年底迫摔,淘寶網(wǎng)已經(jīng)有4百多萬種商品了,日均4千多萬個(gè)PV泥从,注冊(cè)會(huì)員達(dá)400萬個(gè)句占,全網(wǎng)成交額達(dá)10億元。

到現(xiàn)在為止躯嫉,我們已經(jīng)用上了IBM的小型機(jī)纱烘、Oracle的數(shù)據(jù)庫、EMC的存儲(chǔ)祈餐,這些東西都是很貴的擂啥,那些年可以說是花錢如流水。有人說過“錢能解決的問題帆阳,就不是問題”哺壶,但隨著淘寶網(wǎng)的發(fā)展,在不久以后蜒谤,錢已經(jīng)解決不了我們的問題了变骡。

花錢買豪華的配置,也許能支持1億個(gè)PV的網(wǎng)站芭逝,但淘寶網(wǎng)的發(fā)展實(shí)在是太快了,到了10億個(gè)PV怎么辦渊胸?到了百億怎么辦旬盯?在幾年以后,我們不得不創(chuàng)造技術(shù)翎猛,解決這些只有世界頂尖的網(wǎng)站才會(huì)遇到的問題胖翰。后來我們?cè)陂_源軟件的基礎(chǔ)上進(jìn)行自主研發(fā),一步一步地把IOE(IBM小型機(jī)切厘、Oracle萨咳、EMC存儲(chǔ))這幾個(gè)“神器”都去掉了。

這些神器就如同《西游記》中那些神仙的兵器疫稿,他們身邊的妖怪們拿到這些兵器能把猴子打得落荒而逃培他。但最牛的神仙是不依賴這些神器的鹃两,他們揮一揮衣袖、翻一下手掌就威力無比了舀凛。



一個(gè)企業(yè)級(jí)的Java系統(tǒng)應(yīng)該采用什么樣的架構(gòu)俊扳?

歸納網(wǎng)站遇到的問題,主要是對(duì)性能猛遍、容量和成本的控制馋记,這有哪些通用的解決方案?

在技術(shù)實(shí)力得到提升之后懊烤,淘寶網(wǎng)的哪些業(yè)務(wù)有了突飛猛進(jìn)的發(fā)展梯醒?哪些業(yè)務(wù)又會(huì)遇到技術(shù)的障礙?


(1)【IM工具是什么:IM工具是一種即時(shí)通訊方式腌紧。im工具可允許兩人或多人使用網(wǎng)路即時(shí)的傳遞文字訊息茸习、檔案、語音與視頻進(jìn)行交流寄啼。一個(gè)好的im工具可以幫助節(jié)約企業(yè)成本逮光,降低溝通門檻,提高工作效率墩划。

在常見im工具使用情況中涕刚,我們總會(huì)遇到通訊列表聯(lián)系人繁雜,找人麻煩乙帮;傳統(tǒng)客服系統(tǒng)中歷史消息杜漠,信息太多記不住察净;信息回溯難驾茴,聊天記錄不完整等等問題∏饪ǎ】

(2)BUG-FIX:漏洞修補(bǔ)锈至。

This is a bug-fix release:這是一個(gè)漏洞修補(bǔ)的版本。

意思是這個(gè)版本沒有增加新的功能译秦,只是對(duì)上一版本的漏洞(BUG:蟲子)做了修補(bǔ)峡捡。

(3)去IOE

“去 IOE”指的是擺脫掉IT部署中原有的IBM小型機(jī)、Oracle數(shù)據(jù)庫以及EMC存儲(chǔ)的過度依賴筑悴。告別最后一臺(tái)小機(jī)们拙,意味著整個(gè)阿里集團(tuán)盡管還有一些Oracle數(shù)據(jù)庫和EMC存儲(chǔ),但是IBM小型機(jī)已全部被替換阁吝。2013年7月10日砚婆,淘寶重中之重的廣告系統(tǒng)使用的Oracle數(shù)據(jù)庫下線,也是整個(gè)淘寶最后一個(gè) Oracle數(shù)據(jù)庫突勇。這兩件事合在一起是阿里巴巴技術(shù)發(fā)展過程中的一個(gè)重要里程碑装盯。

————————————————

版權(quán)聲明:本文為CSDN博主「弱弱的羊羔」的原創(chuàng)文章坷虑,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明验夯。原文鏈接:https://blog.csdn.net/hsghggt/article/details/83720571

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末猖吴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子挥转,更是在濱河造成了極大的恐慌海蔽,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绑谣,死亡現(xiàn)場(chǎng)離奇詭異党窜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)借宵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門幌衣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人壤玫,你說我怎么就攤上這事豁护。” “怎么了欲间?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵楚里,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我猎贴,道長(zhǎng)班缎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任她渴,我火速辦了婚禮达址,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘趁耗。我一直安慰自己沉唠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布苛败。 她就那樣靜靜地躺著右冻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪著拭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天牍帚,我揣著相機(jī)與錄音儡遮,去河邊找鬼。 笑死暗赶,一個(gè)胖子當(dāng)著我的面吹牛鄙币,可吹牛的內(nèi)容都是我干的肃叶。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼十嘿,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼因惭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绩衷,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤蹦魔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后咳燕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勿决,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年招盲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了低缩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡曹货,死狀恐怖咆繁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情顶籽,我是刑警寧澤玩般,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站蜕衡,受9級(jí)特大地震影響壤短,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜慨仿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一久脯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧镰吆,春花似錦帘撰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至牢硅,卻和暖如春蹬耘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背减余。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來泰國打工综苔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓如筛,卻偏偏與公主長(zhǎng)得像堡牡,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子杨刨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容