微博平臺穩定性體系介紹

碼頭工人 8年前發布 | 27K 次閱讀 微博
目錄介紹
    1. 微博平臺業務介紹
    2. 穩定性體系-整體方案介紹
    3.  穩定性體系- 架構方案詳細介紹
    4.  穩定性體系- 監控體系詳細介紹
    5.  穩定性體系- 容量評估
    6.  穩定性體系- 干預方式

隨著微博業務的快速發展,微博平臺的穩定性建設也越來越完善,應對線上突發問題的能力也越來越強。
    
   
1. 微博平臺業務介紹

    微博平臺組負責微博的feed,評論,贊等核心業務的后臺接口開發和維護,系統的主要特點如下:
  • 請求量大
           日常晚高峰部分接口的qps能達到6w,大部分的接口的qps也在5千以上

  • 依賴資源多,任何依賴的資源都有可能down掉  
          依賴MC,Redis,DB,RPC,HTTP,Hbase。僅核心池就依賴90多個MC端口,500多Redis端口,100多個db端口

  • 大型運營活動及三節保障:
        讓紅包飛
        春晚

  •  熱門突發事件:
        范冰冰李晨的我們
        周一見

    各種各樣的情況需要我們能快速應對。


2. 穩定性體系整體方案介紹
微博平臺穩定性體系介紹





3 . 架構體系詳細介紹

  • 無單點設計
         調用鏈路無單點
                            前端,隊列機,rpc 無狀態服務,可線性擴容
        
        資源層分層設計
                             MC,Redis,DB 主從設計,其中mc 有三層設計:Master slave保障高可用,L1用來抗帶寬
             微博平臺穩定性體系介紹
  • 自保護,防雪崩
        線程池保護,超出服務器最大線程時drop請求
            ? Tomcat 前端機 
                               ?   RPC
        Fail Fast
                               ?  MC,Redis,DB,Hbase,Motan RPC 在后端資源出問題時可以自動降級請求調用

  • Localcache 應對極熱的push數據
  • 服務隔離
        物理隔離, 多機房部署
             微博平臺穩定性體系介紹
        邏輯隔離, 拆分核心池,非核心池。防止非核心服務影響核心服務。



4 . 監控體系詳細介紹
    此處的監控是業務層的監控,不包括運維層的監控。監控體系的基礎是日志體系,日志體系主要包括:
     請求日志
        記錄用戶的請求參數, 4xx 5xx 數量,平均耗時等,包括nginx層,tomcat層,業務層
     Trace 日志
        通過 requestId 串聯所有的日志,用于定位分析問題
     性能統計日志
        包括 qps ,平均耗時, slow count ,耗時區間
     分步耗時日志
        分析定位哪一步性能差
    線程池日志
    
    監控體系主要包括

   
【實時報警】:
     實時監控接口健康狀況,變為紅色表示問題已經很嚴重。
     可查看哪臺服務器有問題。
     微博平臺穩定性體系介紹

 【監控類】: 

    1.【qps監控】

     判斷是否流量突增導致容量不足
     判斷是否單機房問題
          微博平臺穩定性體系介紹

    

    2. 【平均耗時監控】

        監控接口性能是否存在問題

           微博平臺穩定性體系介紹

    3. 【4xx,5xx監控】

    判斷接口是否存在異常
             微博平臺穩定性體系介紹

 【問題定位

    1.【單機slow top】之前需要掃描nginx才能定位是否是單機問題,通過此監控,快速判斷是否單機問題。

            微博平臺穩定性體系介紹

        2.【依賴資源整體slow 】

           通過此監控,快速判斷哪類資源有問題

           微博平臺穩定性體系介紹

        3.【具體資源slow top 5】

              每種資源對應的端口或接口很多,

              對具體資源進行慢請求的top5分析,可以快速找出具體哪些端口或接口有問題

          微博平臺穩定性體系介紹

       4.【分步耗時】

          某個接口中每一步的耗時情況,便于排查問題

          微博平臺穩定性體系介紹



5. 容量評估

    壓測方式 :

    單機壓測

    • tcpcopy線上引流:多臺引一臺或放大流量倍數
    • 調整nginx權重

    服務池壓測

    • 機房間流量切換
    • 線上逐步503服務器從nginx摘除

    資源容災壓測

    • touchstone:基于tc(延遲)和iptable(封禁)
     評估結果
     單機能承載的最大qps
     服務池能承載的最大qps
     水位預警
         微博平臺穩定性體系介紹


6 . 干預方式

    降級
    接口降級
                整個接口降級 
                接口及參數匹配 
    非核心路徑降級
    依賴資源降級
                mc、redis、db、http、mcq
    封殺
    uid
    appkey
    ip
    切流量
    DNS層
    Nginx層
     動態擴容:基于docker和 阿里云的動態擴容方式可以實現10分鐘擴容上百臺前端機的能力,期待春晚依賴混合云順利度過流量高峰。

來自:http://weibo.com/p/1001603939610718766471
 本文由用戶 碼頭工人 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!