高併發已經成爲當前互聯網企業面臨的巨大挑戰!例如2015年「雙十一」全球狂歡節正式落下帷幕,天貓最終交易額也達到了創紀錄的912.17億元!參與交易國家和地區達到232個,雙十一支付寶最高峯每秒處理的交易筆數是8.59萬筆,在線人數峯值達到4500萬。nginx
淘寶的核心技術(國內乃至國際的Top,這仍是2011年的數據)數據庫
l 擁有全國最大的分佈式Hadoop集羣(雲梯,2000左右節點,24000核CPU,48000GB內存,40PB存儲容量)編程
l 全國分佈80+CDN節點,可以自動找尋最近的節點提供服務,支持流量超過800Gbps緩存
l 不遜於百度的搜索引擎,對數十億商品進行搜索,全球最大的電商平臺服務器
l 頂尖的負載均衡系統,頂尖的分佈式系統,頂尖的互聯網思想,功能多樣運行極其穩定網絡
l 豐富的生態產業以及先進的數據挖掘技術架構
l ……不少不少併發
l 馬總在2003年4月7日祕密叫來阿里巴巴的十位員工,來到杭州一個隱祕的毛坯房,要求他們在一個月左右的時間內作出一個C2C網站。結果固然仍是直接買的快,一個基於LAMP架構的網站,原名是PHPAuction,老美開發的一個拍賣網站。固然必需要作修改才能用。負載均衡
l 2003年末,淘寶註冊用戶23萬,PV 31萬/day,半年成交額3371萬框架
l 很顯然MySQL沒法撐得起如此大的訪問量,數據庫瓶頸出現了。幸虧阿里的DBA隊伍足夠強大,他們使用Oracle替代了MySQL。Oracle那時就已經有了強大的併發性訪問設計——鏈接池,從鏈接池取鏈接的耗費比單獨創建鏈接少不少。可是PHP當時並無官方提供支持語言鏈接池特性,因而多隆前輩用Google(不會是Baidu)搜到了一個開源的SQL Relay,因而數據庫軟件方面的瓶頸暫時解決了。
l 隨之而來的是面臨硬件性能瓶頸,阿里買了EMC的SAN存儲設備,加上Oracle高性能RAC,硬件容量也暫時沒問題了。
l 由於SQL Relay的問題實在過於嚴重,2004年因而淘寶終於作出了跨時代的決策——使用Java重寫網站。
l 淘寶請了Sun的高級工程師來幫忙作Java架構。那麼他們是如何作到修改編程語言而不改變網站使用呢——模塊化替換,今天寫好了A模塊,另開一個新域名,將鏈接指向該模塊,同時別的模塊不變,等到所有模塊完成的時候,原域名放棄。Sun公司堅持使用EJB做爲控制層,加上使用iBatis做爲持久層,一個可擴展且高效的Java EE應用誕生了。
l 送走Sun的大牛們以後,阿里的數據存儲又遇到了瓶頸,因而忍痛買了一臺IBM小型機,也就有了IOE(IBM + Oracle + EMC)這樣的傳說
l 2004年末,淘寶註冊用戶400萬,PV 4000萬/day,全網成交額10個億。
l 2005年Spring誕生了,早聞Spring框架在Web應用不可或缺,而在淘寶網,Spring也達到了Rod Johnson設計它的目的——替代EJB。
l 2005年末,淘寶註冊用戶1390萬,PV 8931萬/day,商品數目1663萬個。
l 考慮到將來的發展,這樣的設施架構只是勉強能夠應付如今的要求。因而,CDN技術派上用場了,一開始使用商用的ChinaCache,後來使用章文嵩博士搭建低耗能CDN網絡,淘寶網的性能愈來愈好了。
l 2006年末,淘寶註冊用戶3000萬,PV 15000萬/day,商品數目5000萬,全網成交額169億元。
l 淘寶在2007年以前,使用NetApp的商用存儲系統,可是仍然不夠應付迅速增加的趨勢。同年Google公佈了GFS的設計思想,參照它的思想,淘寶也開發了本身的文件系統——TFS每一個用戶在TFS上擁有1GB的圖片存儲空間,這些都得益於TFS集羣的文件存儲系統以及大量的圖片服務器。淘寶使用實時生成縮率圖,全局負載均衡以及一級和二級緩存來保證圖片的訪問優化與高效訪問。
l 淘寶的服務器軟件使用Tengine,一個被優化過的nginx模塊。
l 淘寶分離出了UIC(User Information Center),供全部模塊調用。多隆前輩再次爲其編寫出了TDBM,徹底是基於內存的數據緩存(參考了memcached)。再而後,淘寶將TBstore和TDBM合併,寫出了Tair,一個基於Key-Value的分佈式緩存數據系統。而後升級了本身的iSearch系統。
l 2007年末,淘寶註冊用戶5000萬,PV 25000萬/day,商品數目1個億,全網成交額433億元。
l ...
l Dubbo是阿里巴巴內部的SOA服務化治理方案的核心框架,天天爲2000+ 個服務提供3,000,000,000+ 次訪問量支持,並被普遍應用於阿里巴巴集團的各成員站點。Dubbo自2011年開源後,已被許多非阿里系公司使用。