淘寶作為阿里云的經(jīng)典,一直被拿來在四處展示:雙十一交易量有多大,處理能力有多強(qiáng),還多活云中心架構(gòu)呢......美啊!可5.27傳統(tǒng)行業(yè)的一鏟子,支付寶怎么就歇了?說好的互聯(lián)網(wǎng)云中心呢?說好的多活呢?
多活云中心好啊,但阿里貌似沒想讓太多人知道,多活的實(shí)現(xiàn)對(duì)于應(yīng)用有特定要求,并不能適合所有應(yīng)用災(zāi)備需求。
談到多活系統(tǒng),以前流行的名字叫分布式系統(tǒng),而分布式系統(tǒng)的限制來自于著名的“CAP”理論,即
Consistency(一致性)
Availability(可用性)
Partition tolerance(分區(qū)耐受性)
三部分在系統(tǒng)實(shí)現(xiàn)只可同時(shí)滿足二點(diǎn),無法三者兼顧(這個(gè)由Eric Brewer 2000年提出,由MIT學(xué)者SethGilbert與Nancy Lynch2002年完成數(shù)學(xué)證明)
CAP理論證明了強(qiáng)一致性交易型系統(tǒng)不適合雙活/多活模式。
這也就是說,淘寶是A+P類型,數(shù)據(jù)沒有強(qiáng)一致性要求的。例如,您雙十一賣鞋,庫(kù)存3000雙,由于多站點(diǎn)銷售數(shù)據(jù)不能實(shí)時(shí)同步,最后賣了5000雙,So What!補(bǔ)2000雙貨好了,大不了退了錢,道個(gè)歉,再送個(gè)紅包。
這方式您在12306試下?3000張票,您賣5000張出去,什么后果?多找2000個(gè)座(站)位?哪找去,掛票都沒地!退票?那2000個(gè)人不得去鐵道部堵門去!
阿里一直拿它和12306的合作說事兒,您看仔細(xì)了,余票查詢系統(tǒng),是查詢!
還有銀行,賬戶里有3000塊錢,您找?guī)兹送瑫r(shí)取去,能讓你每人取出3000塊來嗎?(要真取出來,還是趕緊主動(dòng)還了吧,咱這兒規(guī)矩,你懂的)
支付寶也不傻啊!淘寶可以多賣2000雙鞋,支付寶不能讓你賬戶上有3000塊,花出去5000塊啊。因此平時(shí)支付寶主數(shù)據(jù)庫(kù)就在杭州一地呆著,其他地兒哪也不去。什么雙活,多活,那是淘寶的事,支付寶就在杭州想靜靜。
后來人家一鏟子下來,沒辦法,災(zāi)備吧,同城沒做雙活呀,往深圳搬吧。災(zāi)備之前,您得把備份中心的數(shù)據(jù)一致性做好了吧,親們的賬戶里既不能少一分錢,更不能多一分錢。
這就花時(shí)間了,因?yàn)檎l知道那一鏟子下來的瞬間,有多少筆交易沒同步到異地備份中心去啊!(如果您有個(gè)同城的災(zāi)備,用了諸如IBM GDPS/PPRC,OracleRAC,或VMware VSC/EMC VPLEX類似的東東,就不用這么擔(dān)心了一致性問題了。不過可惜,去IOE了)
說句實(shí)際的,保證數(shù)據(jù)一致性不出差錯(cuò),憑著人體智能,支付寶在差不多兩個(gè)小時(shí)做到異地恢復(fù),這已經(jīng)相當(dāng)快的嘍。
網(wǎng)傳攜程宕機(jī)1小時(shí)損失100多萬美元,支付寶一小時(shí)損失多少,不知道,肯定比攜程多得多。但對(duì)阿里來說,錢是小事情,聲譽(yù)上的損失是沒法拿錢算的。
想想看,那么多年了,為毛銀行一直都在搞兩地三中心啊? 所以,跟錢有關(guān)的事兒,您就別信什么互聯(lián)網(wǎng)多活了,踏踏實(shí)實(shí)做好數(shù)據(jù)同步和災(zāi)備吧。
分享到微信 ×
打開微信,點(diǎn)擊底部的“發(fā)現(xiàn)”,
使用“掃一掃”即可將網(wǎng)頁(yè)分享至朋友圈。