• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
     首頁(yè) > 新聞 > 國(guó)內(nèi) >

    從微信的故障談?wù)劮⻊?wù)可用性

    2013-07-23 15:55:54   作者:   來(lái)源:36氪   評(píng)論:0  點(diǎn)擊:


      昨天微信發(fā)生部分服務(wù)故障,媒體微博上面就此事表現(xiàn)相當(dāng)熱鬧,這也從另一方面印證了微信的江湖地位以及移動(dòng)互聯(lián)網(wǎng)改變生活的真實(shí)寫照。

      從用戶角度來(lái)說(shuō),一直好好的一個(gè)東西突然壞了,很大情況下可能不會(huì)首先想到是這東西本身壞了,而是先從別的地方找原因,這也是人的一種慣性思維。 而一旦發(fā)現(xiàn)是用的這東西本身壞了,憤怒和無(wú)奈的程度會(huì)更加加倍。但是有一點(diǎn)大家想過(guò)沒有,任何一個(gè)東西的可用性都是需要有一定代價(jià)才能保證的。 越能用得長(zhǎng)的東西,要么就是質(zhì)量一流,要么就是需要不斷檢修和維護(hù),這都需要不斷付出努力才能做到。

      服務(wù)可用性落實(shí)到具體的可以衡量的指標(biāo)上來(lái)說(shuō),通常用幾個(gè)9 來(lái)表示。通常大家所說(shuō)的3個(gè)9 (99.9%), 是說(shuō)一個(gè)業(yè)務(wù)系統(tǒng)造成大部分用戶無(wú)法使用的時(shí)間一年中不超過(guò) 8小時(shí)46分鐘,而全球互聯(lián)網(wǎng)中的老大Google 對(duì)于服務(wù)可用性達(dá)到了5個(gè)9(99.999%), 也就是一年內(nèi)故障時(shí)間不超過(guò) 5分鐘 15 秒,這個(gè)故障時(shí)間對(duì)用戶基本無(wú)感知。對(duì)于用戶數(shù)量和交易數(shù)量可預(yù)測(cè)或者憑經(jīng)驗(yàn)就可以了解的,而又關(guān)系到國(guó)計(jì)民生的行業(yè),譬如銀行、電信企業(yè)來(lái)說(shuō),一般都要求達(dá)到5個(gè)9。 然而對(duì)于互聯(lián)網(wǎng)而言,5 個(gè)9 的服務(wù)可用性需要付出的代價(jià)和挑戰(zhàn)是相當(dāng)巨大的。

      首先,在基礎(chǔ)設(shè)施方面,針對(duì)服務(wù)質(zhì)量,IDC 也分成很多等級(jí);A 級(jí)一般承諾服務(wù)可用性達(dá)到或者接近4 個(gè)9, 這就要求至少以下幾個(gè)方面: 必須多路電源接入(如果只有一路電源,萬(wàn)一沒電了就瞎了),必須有支持至少 5 小時(shí)的蓄電設(shè)備、必須有獨(dú)立的發(fā)電設(shè)備、所有設(shè)備和線路冗余備份(是所有設(shè)備),整個(gè)系統(tǒng)無(wú)單點(diǎn)故障。 以上這些還是比較粗的幾條。

      有了這樣的基礎(chǔ)設(shè)施保證,如果應(yīng)用系統(tǒng)本身支持不到相應(yīng)的幾個(gè)9, 那么整個(gè)業(yè)務(wù)系統(tǒng)就服從木桶原則,哪個(gè)服務(wù)可用性低就是哪個(gè)。 而動(dòng)不動(dòng)就上億用戶一起訪問(wèn)的互聯(lián)網(wǎng)應(yīng)用來(lái)說(shuō),要做到 4 個(gè)或者5個(gè)9, 至少需要在幾個(gè)方面來(lái)考慮:架構(gòu)上的合理性和靈活性、整個(gè)系統(tǒng)成本的控制、運(yùn)維的方便和高效。

      先說(shuō)說(shuō)成本,對(duì)于類似傳統(tǒng)的金融系統(tǒng)等而言,一般采用的是大塊頭的機(jī)器,因?yàn)槠浞⻊?wù)規(guī)模相對(duì)可控,譬如同時(shí)進(jìn)行存錢、取錢轉(zhuǎn)賬的用戶也就說(shuō)那么萬(wàn)級(jí)別。 但是對(duì)于互聯(lián)網(wǎng)系統(tǒng)而言,如果也采用大塊頭的機(jī)器,那么整個(gè)系統(tǒng)的花費(fèi)將是天文數(shù)字。所以除了特別關(guān)鍵的數(shù)據(jù)會(huì)采用大塊頭機(jī)器來(lái)處理,一般都買的是普通的商業(yè)計(jì)算機(jī)(小幾萬(wàn)一個(gè)), 隨著用戶規(guī)模的增加不斷買新的機(jī)器進(jìn)行擴(kuò)充,這本身也符合發(fā)展規(guī)律。 但是一般的商用機(jī)器故障率還是相當(dāng)高的。你如果買過(guò)家用電腦,估計(jì)也經(jīng)常碰到機(jī)器開不起來(lái)的問(wèn)題吧。 那么怎么樣在一堆機(jī)器里面的幾個(gè)機(jī)器壞了的情況下,系統(tǒng)還能正常工作呢,這就要求在應(yīng)用設(shè)計(jì)的時(shí)候能采用集群技術(shù),自動(dòng)進(jìn)行故障轉(zhuǎn)移和容錯(cuò)。 這就要求在架構(gòu)上要能考慮到這些因素。

      然后我們?cè)賮?lái)看,你如果所有的機(jī)器放在一個(gè)地方,即使能夠在一個(gè)機(jī)房放得下, 在地大物博的中國(guó),從北京來(lái)訪問(wèn)在杭州的服務(wù)器,如果是跨運(yùn)營(yíng)商的網(wǎng)絡(luò)之間來(lái)訪問(wèn),估計(jì)比坐飛機(jī)快不了多少。 這樣的速度顯然不符合好的體驗(yàn)這條金律。 而且把所有機(jī)器放在一個(gè)地方,萬(wàn)一這個(gè)地方出了什么問(wèn)題,豈不是全完蛋了! 所以不能把雞蛋放在一個(gè)籃子里面,就需要根據(jù)用戶的分布情況在不同的城市、同一城市的不同區(qū)域來(lái)建設(shè)業(yè)務(wù)系統(tǒng)。但是在邏輯上, 不同城市的系統(tǒng)應(yīng)該又是同一個(gè)系統(tǒng)的,否則我在杭州加了一個(gè)在北京的朋友,如果過(guò)兩天看不到了,誰(shuí)還用啊。

      這里又有一些問(wèn)題需要解決,譬如就在某一天某個(gè)城市的開挖下水道,把光纖給挖斷了, 導(dǎo)致訪問(wèn)到這個(gè)城市的系統(tǒng)無(wú)法使用了,那怎么辦呢? 把這些用戶分流到別的城市的系統(tǒng)上去不就行了? 是的,理論上是可以的。 但是就相當(dāng)于如果一個(gè)城市被臺(tái)風(fēng)影響,需要把全部居民轉(zhuǎn)移到另外一個(gè)城市或者幾個(gè)城市里一樣,轉(zhuǎn)移到哪個(gè)城市、接收的城市是否能容納這些新增加的居民,這些居民的銀行存款等數(shù)據(jù)是否也能保證到了新城市后還能保持可用?在實(shí)在萬(wàn)不得已的情況下,有一部分居民可能無(wú)法轉(zhuǎn)移。大規(guī)模互聯(lián)網(wǎng)系統(tǒng)在故障時(shí)的處理思路也大致如此。 首先需要規(guī)劃哪個(gè)城市給哪些用戶服務(wù),容量是多少,如果要接收別的城市的居民,那么還需要留多少容量,接收哪個(gè)城市來(lái)的用戶,事先要把這些用戶的信息能同步過(guò)來(lái)保存著等等。 即便如此在規(guī)劃無(wú)法做到十分完善的情況下,部分用戶可以繼續(xù)服務(wù),部分用戶只能降級(jí)服務(wù)甚至拒絕服務(wù),這也是為了保障整個(gè)系統(tǒng)能盡可能提供有限服務(wù)。

      還有一個(gè)就是運(yùn)維的高效性, 在故障出現(xiàn)后或者出現(xiàn)之前就能及時(shí)啟動(dòng)合理的應(yīng)急措施,進(jìn)行用戶的分流,甚至對(duì)部分用戶進(jìn)行限流等。

      如果在有些地方考慮不周,譬如我之前所在一家知名 IM 企業(yè),由于地震導(dǎo)致海底光纜故障,很大部分的用戶無(wú)法通過(guò)原路徑訪問(wèn)系統(tǒng),系統(tǒng)本身無(wú)法在中國(guó)提供應(yīng)用層面的路由選擇;只能依賴運(yùn)營(yíng)商來(lái)調(diào)整路由,這就在時(shí)間上大大超出可用性承諾的時(shí)間,無(wú)論最終是誰(shuí)的原因, 最終導(dǎo)致用戶大量流失。 也碰到過(guò)由于沒有對(duì)部分用戶降級(jí)服務(wù)或者延遲服務(wù),而導(dǎo)致全部用戶不斷進(jìn)行服務(wù)恢復(fù)嘗試,形成浪涌和雪崩,導(dǎo)致整個(gè)服務(wù)最終拒絕服務(wù)(Deny of Service).

      這些對(duì)于目前我們自己擁有上千萬(wàn)并發(fā)的個(gè)推系統(tǒng)而言,也都是一直在完善的方面。

      對(duì)于騰訊而言,這十幾年來(lái)對(duì)于幾億 QQ 用戶的服務(wù),積累了大量的有價(jià)值的經(jīng)驗(yàn). 微信出現(xiàn)這樣的情況,應(yīng)該說(shuō)還是不多見的, 可能也說(shuō)明在騰訊內(nèi)部的資源分配還存在一定不均衡。 不過(guò)相信他們可以很快進(jìn)行調(diào)整和完善,當(dāng)然在這背后也意味著他們巨大的努力和付出。

     

    分享到: 收藏

    專題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 含山县| 嘉义市| 南投县| 泰顺县| 宝丰县| 剑川县| 名山县| 河南省| 北川| 北碚区| 赣州市| 武强县| 阿合奇县| 民勤县| 舟山市| 井冈山市| 西安市| 东辽县| 肇东市| 阜阳市| 栖霞市| 百色市| 呈贡县| 武威市| 彭州市| 洪雅县| 上林县| 蓬莱市| 崇文区| 凤庆县| 惠东县| 龙泉市| 银川市| 仙游县| 武强县| 民县| 丰台区| 鱼台县| 沙雅县| 喀喇沁旗| 大邑县| http://444 http://444 http://444 http://444 http://444 http://444