日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2亿QQ用户大调度背后的架构设计和高效运营(上)

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2亿QQ用户大调度背后的架构设计和高效运营(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者介紹

周小軍

騰訊高級運維工程師,目前在騰訊社交負責社交業務海量NoSQL集群運維和團隊管理。曾在天涯社區任運維副總監。對互聯網網站架構、數據中心、云計算及自動化運維等領域有深入研究和理解,積累了十多年的IT運維管理經驗。希望窮盡一生來深入鉆研運維領域。

全網大調度

8月12日23點30分,天津市濱海新區貨柜碼頭發生集裝箱連串爆炸。

占地8萬平方米,服務器超過20萬臺的騰訊天津數據中心是騰訊在亞洲最大的數據中心,危險品倉庫爆炸時,數據中心距離爆炸點僅僅1.5公里。

情況十分危急!數據中心隨時有可能被迫停止運營!

事件發生后,第一時間排查了損傷,發現損傷包括冷機系統宕機,冷凍水管爆管,地下水發生嚴重水浸等問題,加之爆炸之后各種信息不明朗…

2億QQ用戶可能深受影響!這甚至影響很多公司的業務,因為QQ早已不是簡單的聊天工具,而是商務洽談之必備!

天津數據中心內含騰訊社交核心業務,包括QQ、空間、相冊及音樂等業務。社交核心業務主要按深圳、天津和上海三地來分布部署,各支撐中國三大區域的用戶訪問。

其中天津數據中心是核心機房之一,承載我國北方所有用戶流量,高峰期在線用戶超過1億。如果天津數據中心停運,將有30%以上的QQ用戶服務受到影響。

所幸的事,類似于谷歌擁有的全球業務調配能力,騰訊社交網絡經過長期的建設積累,具備了數據和業務在全國范圍的云數據中心中轉換遷移的能力。

經過24小時的技術應急大調度,QQ用戶服務最終無感知地在線遷移到深圳和上海,完成中國互聯網史上最大規模的用戶調度。

在如此嚴峻的情況下,QQ運營繼續保持全年4個9的可持續服務能力。

下面先簡單介紹一下調度過程。

1、啟動

社交核心業務的三地部署各具有一定的容量冗余,能保證一地災難性故障時其他二地能支撐所有用戶。

事件發生后,社交運營團隊立即啟動重大故障處理流程,成立突發事件應急團隊,啟用調度應急預案,做好天津用戶調度回深圳和上海的準備:

  • 應急團隊按業務分配主、備負責人配合業務線來跟進實施,接入、邏輯和數據三個架構層各安排主備負責人協調。

  • 由故障值班工程師負責在應急團隊中協調和溝通。

  • 最上層由大事件經理將匯總信息和實施過程實時同步給總監、業務、運維和QA等工作群組。

2、調度

13日團隊開始以每千萬為粒度將在線用戶調度回深圳。

晚上22時是QQ在線用戶峰值時間段,深圳一些服務模塊的容量上漲到80%的水位,應急團隊利用資源池里的服務器資源,邊調度邊擴容模塊容量,把水位下調到可控范圍之內。

對于沒有資源擴容的模塊,團隊采用服務柔性的方式順利過渡。如QQ采取的柔性為取消一些非關鍵服務:

如不加載聯系人備注,不讀取QQ漫游消息等。

通過在線擴容、服務柔性等策略,在線高峰期間用戶訪問核心服務順暢,順利地度過了流量洪峰,用戶無感知。

下圖為手機QQ天津地區在線用戶曲線圖:

上圖可以觀察到從13號晚上到14號凌晨,天津在線用戶降到0的曲線下降趨勢;以及14號下午回遷60%天津用戶后的曲線上升。

整個過程不是僅僅從天津遷出到回遷這么簡單,具體是這樣的:

  • 14日凌晨1時30分,天津所有用戶全部調度、遷出完畢。

    調度成功結束,此時天津數據中心在線用戶數已為零。

  • 14日上午,天津數據中心運維團隊知會天津數據中心暫時可以穩定運營。

    應急團隊于是主動將深圳的1千萬在線用戶調度回天津,以緩解深圳數據中心的內網傳輸壓力,并關閉之前開啟的服務柔性開關,恢復全功能服務。

  • 14日中午,天津數據中心預警解除,現場可控。

    應急團隊將大部分在線用戶調度回天津,使得天津在線用戶恢復到4千萬的容量。

  • 20日,天津爆炸現場解控,數據中心幾處受損得到全部修復,基礎設施恢復正常,警報解除。

    應急團隊將北方用戶全部調度回天津,天津恢復回812之前的流量水平。

  • 調度的幾點挑戰

    QQ 2億多在線峰值用戶要實時全網調度,所面臨的挑戰是非常大的,主要有:

  • 用戶如何在體驗無損的情況下調度到異地?

    數據中心三地分布,用戶在三地之間以秒間調度,必須保證不掉線、不丟數據,用戶完全感知不到異地切換。因此必須要保證狀態、消息、數據等做到三地的一致。

  • 用戶的狀態數據、消息如何保證不丟失?

    用戶有各類狀態,如在線、隱身、忙碌等,必須要實時同步到三地數據中心;用戶消息包括C2C消息、群消息、離線消息等,要解決用戶切換時消息不丟失的挑戰。

  • 用戶的數據如何做到幾地的全量一致性同步?

    這里要解決以下問題,包括如何保證同步的可靠性、實時性;如何支撐大流量高效分發和靈活伸縮;如何應對頻發網絡抖動和異地專線延時;如何支持多地區互聯和區域自治。

  • 異地的服務容量(包括服務器容量、模塊容量、業務容量和IDC容量等)能否支撐大量用戶請求的涌入,異地容量不能支撐時如何處理用戶請求?

  • 容量峰值后如何快速縮容?

  • 調度能做到多快,分鐘級、小時級還是天級?

    調度速度越快就越能具備快速反應能力,而目前QQ已經做到秒級的調度能力。

  • 運營是否具備自動化的調度能力?
    調度必須是一鍵式全自動化,一個工程師就能輕易實現全局的調度能力。

  • 以上任何一個挑戰解決不了的話,都必將影響調度的實現。

    在下篇將講述,我們是如何應對這些挑戰的。本次億級用戶遷移背后的技術架構和運營,其中用到的核心技術是SET,本文先和大家做個預熱。

    關于 SET

    SET,就像標準化的集裝箱,是一個標準化的服務模塊集群。它把原錯綜復雜的服務器內連接關系和功能耦合模糊掉,變成運營層面看到的一個個業務部署模塊。

    騰訊社交業務以SET的方式部署服務,每個SET集合了一個或一組服務模塊,通過接口對外提供調用服務。SET對外輸出二種容量:

    • 一個從業務層面來看到的量,即一組服務器的處理能力,處理能力有兩個量來描述,PCU容量(萬人/在線)和存儲容量(GB);

    • 另一個層面則直接來自于成本層面,即這一組服務器有多少臺服務器和外/內網帶寬。

    SET間是無狀態的,通過SET可以實現橫向擴容能力。也就是說這些業務都支持部署最小化,當有需要時,可以不斷增加SET數量來支持業務的流量,且SET之間無差異。

    欲知后續如何,且聽下文分解~~


    轉載于:https://blog.51cto.com/luoahong/1738682

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的2亿QQ用户大调度背后的架构设计和高效运营(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。