婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 簡單剖析新浪微博的網站整體架構

簡單剖析新浪微博的網站整體架構

熱門標簽:個人家庭地圖標注教程 搜地圖標注怎么找店鋪 百度地圖標注不能編輯 勝威電話外呼系統密碼 百度高德騰訊地圖標注公司 威海語音外呼系統廠家 廣安電銷外呼系統 徐州穩定外呼系統代理商 七臺河商家地圖標注注冊

序言
微博平臺第一代架構為LAMP架構,數據庫使用的是MyIsam,后臺用的是php,緩存為Memcache。
隨著應用規模的增長,衍生出的第二代架構對業務功能進行了模塊化、服務化和組件化,后臺系統從php替換為Java,逐漸形成SOA架構,在很長一段時間支撐了微博平臺的業務發展。
在此基礎上又經過長時間的重構、線上運行、思索與沉淀,平臺形成了第三代架構體系。
我們先看一張微博的核心業務圖(如下),是不是非常復雜?但這已經是一個簡化的不能再簡化的業務圖了,第三代技術體系就是為了保障在微博核心業務上快速、高效、可靠地發布新產品新功能。

第三代技術體系
微博平臺的第三代技術體系,使用正交分解法建立模型:在水平方向,采用典型的三級分層模型,即接口層、服務層與資源層;在垂直方向,進一步細分為業務架構、技術架構、監控平臺與服務治理平臺。下面是平臺的整體架構圖:

如上圖所示,正交分解法將整個圖分解為3*4=12個區域,每個區域代表一個水平維度與一個垂直維度的交點,相應的定義這個區域的核心功能點,比如區域5主要完成服務層的技術架構。
下面詳細介紹水平方向與垂直方向的設計原則,尤其會重點介紹4、5、6中的技術組件及其在整個架構體系中的作用。


水平分層
水平維度的劃分,在大中型互聯網后臺業務系統的設計中非?;A,在平臺的每一代技術體系中都有體現。這里還是簡單介紹一下,為后續垂直維度的延伸講解做鋪墊:
接口層主要實現與Web頁面、移動客戶端的接口交互,定義統一的接口規范,平臺最核心的三個接口服務分別是內容(Feed)服務、用戶關系服務及通訊服務(單發私信、群發、群聊)。
服務層主要把核心業務模塊化、服務化,這里又分為兩類服務,一類為原子服務,其定義是不依賴任何其他服務的服務模塊,比如常用的短鏈服務、發號器服務都屬于這一類。圖中使用泳道隔離,表示它們的獨立性。另外一類為組合服務,通過各種原子服務和業務邏輯的組合來完成服務,比如Feed服務、通訊服務,它們除了本身的業務邏輯,還依賴短鏈、用戶及發號器服務。
資源層主要是數據模型的存儲,包含通用的緩存資源Redis和Memcached,以及持久化數據庫存儲MySQL、HBase,或者分布式文件系統TFS以及Sina S3服務。
水平分層有一個特點,依賴關系都是從上往下,上層的服務依賴下層,下層的服務不會依賴上層,構建了一種簡單直接的依賴關系。
與分層模型相對應,微博系統中的服務器主要包括三種類型:前端機(提供 API 接口服務)、隊列機(處理上行業務邏輯,主要是數據寫入)和存儲(mc、mysql、mcq、redis、HBase等)。


垂直延伸技術架構
隨著業務架構的發展和優化,平臺研發實現了許多卓越的中間件產品,用來支撐核心業務,這些中間件由業務驅動產生,隨著技術組件越來越豐富,形成完備的平臺技術框架,大大提升了平臺的產品研發效率和業務運行穩定性。
區別于水平方向上層依賴下層的關系,垂直方向以技術框架為地基支撐點,向兩側驅動影響業務架構、監控平臺、服務治理平臺,下面介紹一下其中的核心組件。


接口層Web V4框架
接口框架簡化和規范了業務接口開發工作,將通用的接口層功能打包到框架中,采用了Spring的面向切面(AOP)設計理念。接口框架基于Jersey 進行二次開發,基于annotation定義接口(url, 參數),內置Auth、頻次控制、訪問日志、降級功能,支撐接口層監控平臺與服務治理,同時還有自動化的Bean-json/xml序列化。


服務層框架
服務層主要涉及RPC遠程調用框架以及消息隊列框架,這是微博平臺在服務層使用最為廣泛的兩個框架。


MCQ消息隊列
消息隊列提供一種先入先出的通訊機制,在平臺內部,最常見的場景是將數據的落地操作異步寫入隊列,隊列處理程序批量讀取并寫入DB,消息隊列提供的異步機制加快了前端機的響應時間,其次,批量的DB操作也間接提高了DB操作性能,另外一個應用場景,平臺通過消息隊列,向搜索、大數據、商業運營部門提供實時數據。
微博平臺內部大量使用的MCQ(SimpleQueue Service Over Memcache)消息隊列服務,基于MemCache協議,消息數據持久化寫入BerkeleyDB,只有get/set兩個命令,同時也非常容易做監控(stats queue),有豐富的client library,線上運行多年,性能比通用的MQ高很多倍。


Motan RPC框架
微博的Motan RPC服務,底層通訊引擎采用了Netty網絡框架,序列化協議支持Hessian和Java序列化,通訊協議支持Motan、http、tcp、mc等,Motan框架在內部大量使用,在系統的健壯性和服務治理方面,有較為成熟的技術解決方案,健壯性上,基于Config配置管理服務實現了High Availability與Load Balance策略(支持靈活的FailOver和FailFast HA策略,以及Round Robin、LRU、Consistent Hash等Load Balance策略),服務治理方面,生成完整的服務調用鏈數據,服務請求性能數據,響應時間(Response Time)、QPS以及標準化Error、Exception日志信息。


資源層框架
資源層的框架非常多,有封裝MySQL與HBase的Key-List DAL中間件、有定制化的計數組件,有支持分布式MC與Redis的Proxy,在這些方面業界有較多的經驗分享,我在這里分享一下平臺架構的對象庫與SSD Cache組件。


對象庫
對象庫支持便捷的序列化與反序列化微博中的對象數據:序列化時,將JVM內存中的對象序列化寫入在HBase中并生成唯一的ObjectID,當需要訪問該對象時,通過ObjectID讀取,對象庫支持任意類型的對象,支持PB、JSON、二進制序列化協議,微博中最大的應用場景將微博中引用的視頻、圖片、文章統一定義為對象,一共定義了幾十種對象類型,并抽象出標準的對象元數據Schema,對象的內容上傳到對象存儲系統(Sina S3)中,對象元數據中保存Sina S3的下載地址。

SSDCache
隨著SSD硬盤的普及,優越的IO性能使其被越來越多地用于替換傳統的SATA和SAS磁盤,常見的應用場景有三種:
1)替換MySQL數據庫的硬盤,目前社區還沒有針對SSD優化的MySQL版本,即使這樣,直接升級SSD硬盤也能帶來8倍左右的IOPS提升;
2)替換Redis的硬盤,提升其性能;
3)用在CDN中,加快靜態資源加載速度。
微博平臺將SSD應用在分布式緩存場景中,將傳統的Redis/MC + Mysql方式,擴展為Redis/MC + SSD Cache + Mysql方式,SSD Cache作為L2緩存使用,第一降低了MC/Redis成本過高,容量小的問題,也解決了穿透DB帶來的數據庫訪問壓力。


垂直的監控與服務治理
隨著服務規模和業務變得越來越復雜,即使業務架構師也很難準確地描述服務之間的依賴關系,服務的管理運維變得越來難,在這個背景下,參考google的dapper和twitter的zipkin,平臺實現了自己的大型分布式追蹤系統WatchMan。


WatchMan大型分布式追蹤系統
如其他大中型互聯網應用一樣,微博平臺由眾多的分布式組件構成,用戶通過瀏覽器或移動客戶端的每一個HTTP請求到達應用服務器后,會經過很多個業務系統或系統組件,并留下足跡(footprint)。但是這些分散的數據對于問題排查,或是流程優化都幫助有限。對于這樣一種典型的跨進程/跨線程的場景,匯總收集并分析這類日志就顯得尤為重要。另一方面,收集每一處足跡的性能數據,并根據策略對各子系統做流控或降級,也是確保微博平臺高可用的重要因素。要能做到追蹤每個請求的完整調用鏈路;收集調用鏈路上每個服務的性能數據;能追蹤系統中所有的Error和Exception;通過計算性能數據和比對性能指標(SLA)再回饋到控制流程(control flow)中,基于這些目標就誕生了微博的Watchman系統。
該系統設計的一個核心原則就是低侵入性(non-invasivenss):作為非業務組件,應當盡可能少侵入或者不侵入其他業務系統,保持對使用方的透明性,可以大大減少開發人員的負擔和接入門檻?;诖丝紤],所有的日志采集點都分布在技術框架中間件中,包括接口框架、RPC框架以及其他資源中間件。
WatchMan由技術團隊搭建框架,應用在所有業務場景中,運維基于此系統完善監控平臺,業務和運維共同使用此系統,完成分布式服務治理,包括服務擴容與縮容、服務降級、流量切換、服務發布與灰度。


cache設計

這里簡單說一下兩個部分,一部分是Feed架構簡介,第二是cache的設計。

微博技術核心主要三個,一條微博有很多關注的人,分別將你發表的微博分發到你所有關注的人,聚合就是打開微博首頁這里看到我關注人的信息,以及這個微博信息的展現,微博在技術上也稱之為status或者Feed,下面圖就是一個典型的Feed。

Feed架構剛才是兩種設計模式推或者拉,還有第三種方式叫做復合型。做到一定程度單純推或者拉是不夠的。推的話如果把Feed比喻成郵件,推就是inbo不惜是收到的微博,OUTPOX是已發表的微博,發表到所有的粉絲,查看就是直接訪問到。PUSH優點就是實現簡單,通常做一個種型是首選方案,缺點就是分發量。PULL發表是在自己的outbox,查看是所有關注對象的inbox。 優點節約存儲,缺點是計算大量,峰值問題。當前訪問量比較大是不是計算得過來,服務器是不是夠用,假如說你的服務器是按照你峰值規劃你的服務器,在平時時 候是非常多的空閑,這個是不合理,不管推和拉都有一些共同的難題比如說峰值的挑戰,比如說世界杯活動在新浪微博每秒鐘發表量達到2500條,可以使用異步處理2500個峰值,處理速度慢一點,你關注人不能馬上看到,峰值過后保證系統不會被峰值壓跨,下面就是cache,現在有一句話對于這種real—time就是說:傳統硬盤已經不夠用,很多東西要分放在硬盤里面才能滿足需求。因此cache設計決定了一個微博系統的優劣。

里面是一種復合型,不是一個簡單的推或者拉的類型,因為就是說像新浪微博到這個級別要做很多優化,從模型上就是一個推或者拉的模型,按照它的關系來說,把cache分成需要四種存儲的東西,這兩個里面跟索引比較類似,第三就是列表和客戶自己資料。

看一下第一部分就是inbox微博首頁開始ID列表,完全是內存里面,但是有一個缺點,要添加元素需要先AET再SET;第二部分outbox發出微博有存儲最新ID在于聚合。為了高效,通常分兩部分,第一就是說最新的一個ID列表比如說有100條內容,這個用戶很久沒有來,這個是空要過來取就要從我工作列表用ID地址聚合起來;第三部分是關注列表,這些都是純ID,然后following,following加載開銷比較大,上百萬粉絲,越大的集合越容易變更,改變則需要deleteall減少使用followinglist場景;第四部分contetcache微博內容體里面有一個很重要的內容,熱內容。這個用戶有200萬粉絲,這個內容是熱內容,在線粉絲也非常多,多分防止單點訪問瓶頸,最終格式預生成,apenAPI需要返回xml,json格式。

剛才說了介紹cache的架構,現在介紹cache的第二個方面就是使用流程。有一個典型的場景,比如說發表cache怎么操作,首頁展現怎么操作。發表需要改變三個內容,首先要聲稱contentcache,對于常規contentcache也要做復制,如果對方粉絲在線會在inbox數值ID變更。

第三方面修改outbox,根據粉絲列表修改inbox數據列表,然后首頁Feed操作流程。左邊有兩個:inbox,outbox。兩個是可選的,如果inbox沒有一個樹型計算,會根據ID列表聚合起來反饋給I用戶。

獲取首頁Feed的流程,首先間看inbocache是否可用,獲取關注列表,聚合內容從following關系,根據idlist返回最終Feed聚合內容。最常用兩個流程就是這樣。

下面介紹微博cache經驗談,首先說流量。打開首頁,這個時候打一個I來說,比如說contentcache為例,比如multigntn條Feed,cache大小等于N,并發清且如1000次/秒,總流量等于50,20K。假如微博機房里面有1萬并發需要800MBPS貸款,如果不改變價格這個流量是實現不了。再一個1G內網做了很多壓力測試,一般環境跑三四百兆已經不錯了,你網內不光是訪問cache開銷,還有很多其他流量,因此微博需要優化帶寬訪問,可以把熱門數據加載到localcache,要用壓縮算法,可以做復制,有的時候將一個內部cache分組,不同的服務器組,訪問不同的cache減少內網通信的開銷。第一個問題就是帶寬的問題,其中內銷cache開銷訪問量大第一會碰到瓶頸。第二問題就是hotKeys,要訪問姚晨的微博,要建設一個Ilocolcache,刪除時間要把所有的都刪除。

cache規劃方面一些問題,將不同業務,不同長度KEY存儲到不同的MEMcache,不同的業務有不同的生命周期,LRUcache小量,memorystorage大部分,更高效的內存利用。

mutex,什么情況會出現這個問題,比如說一個很熱的內容,cache里面沒有了,因為memcache不是很可靠的東西,你放在里面可能會消失,經常出現這樣的情況:一個很熱的cache沒有了,因為微博系統有很多并發很熱數據沒有了,非常多的并發如果微博沒有一個很好的策略,比如說幾十個,幾百個加一個內容這會是一個悲劇。給每個KEY加載MUTEX,這個并發連接取數據庫,然后把mutex刪除成規,這個時候我只需要一個連接,數據庫加載到BD里面有可以了。

因為前面已經介紹很多內容,我今天介紹一個很簡單的東西就是想關注更多微博平臺的技術,有三個方向一個就是S2技 術沙龍,每個月舉行一次,另外就是說對很多講師光做講座不過癮,講座只是傳授別人東西,沒有能夠交流,所以微博對一線架構師有一個自己線下交流,一些實際中遇到的問題,對這些架構師有幫助提高,交流一下自己正在做,或者有一些東西還不成熟,不適合拿出來講的東西,可以線下交流。另外微博有各新浪微博開發大會,會介紹更多微博平臺架構分享的東西。

S2技術沙龍介紹了希望關注分享Web2.0技術,下面有一個它的網址,另外就是說介紹一下即將舉行一個新浪微博開發者大會,主要除了宣傳作用,希望更多分享新浪微博技術,比如說這個平臺需要架構與存儲,可能到時候講比今天更深入一些,會講一些sinaappengine技術,數據挖掘,合作與商業模式,開發者與平臺。目前有一個開發平臺的網站。

 

標簽:三明 臨沂 吳忠 婁底 云浮 威海 滁州 昭通

巨人網絡通訊聲明:本文標題《簡單剖析新浪微博的網站整體架構》,本文關鍵詞  簡單,剖析,新浪,微博,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《簡單剖析新浪微博的網站整體架構》相關的同類信息!
  • 本頁收集關于簡單剖析新浪微博的網站整體架構的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    午夜精品一区二区三区电影天堂| 久久不见久久见免费视频7| 欧美一区二区日韩一区二区| 91精品国产高清一区二区三区 | 国产成人午夜精品影院观看视频| 日日嗨av一区二区三区四区| caoporen国产精品视频| 色久综合一二码| 经典三级在线一区| 国产精一品亚洲二区在线视频| 亚洲成人av资源| 91免费看片在线观看| 久久久精品免费观看| 日韩免费性生活视频播放| 色婷婷综合激情| 欧美视频日韩视频在线观看| 欧美人与z0zoxxxx视频| 亚洲网友自拍偷拍| 99久久亚洲一区二区三区青草| 国产喂奶挤奶一区二区三区| 国产自产高清不卡| 毛片av中文字幕一区二区| 精品一区二区三区在线播放 | 午夜精品福利一区二区三区蜜桃| 亚洲风情在线资源站| 色播五月激情综合网| 色婷婷久久99综合精品jk白丝| 在线看日本不卡| 色综合中文字幕| 亚洲精品国产高清久久伦理二区| 亚洲一区二区偷拍精品| 欧美日韩一区高清| 男人的j进女人的j一区| 国产日韩精品一区二区三区| 中文字幕精品一区二区精品绿巨人 | 亚洲人成人一区二区在线观看 | 亚洲午夜精品久久久久久久久| 精品一区二区三区免费观看| 国产精品一区2区| 捆绑调教一区二区三区| 亚洲欧美日韩国产另类专区| 成人欧美一区二区三区黑人麻豆 | www.日本不卡| 综合欧美亚洲日本| 亚洲国产精品v| 久久―日本道色综合久久| 久久久久国产精品厨房| 成人动漫一区二区| 欧美精品亚洲一区二区在线播放| 亚洲成人av一区二区| 日本在线不卡视频一二三区| 国产一区二区影院| 欧洲精品中文字幕| 国产丶欧美丶日本不卡视频| 欧美久久免费观看| 精品99999| 国产精品丝袜在线| 秋霞电影网一区二区| 天天综合日日夜夜精品| 一区精品在线播放| 亚洲欧美另类综合偷拍| 成人午夜av电影| 欧美一区二区三区视频免费 | 制服丝袜日韩国产| 亚洲久草在线视频| 欧美日韩视频在线观看一区二区三区| 亚洲一区二区三区在线播放| 亚洲不卡av一区二区三区| 91九色最新地址| 天天综合网 天天综合色| 中文字幕人成不卡一区| 久久精品噜噜噜成人88aⅴ| 日韩欧美国产午夜精品| 久久久久国产精品厨房| 欧美亚洲一区二区在线| 欧美三级韩国三级日本一级| 久久久久免费观看| 免费av成人在线| 久久成人麻豆午夜电影| www国产精品av| 欧美亚洲丝袜传媒另类| 国产一区欧美一区| 欧美人与性动xxxx| 久久99国产乱子伦精品免费| 91精品国产综合久久精品图片| 亚洲福利一二三区| 欧美一区二区三区成人| 免费在线观看一区| 中文字幕乱码日本亚洲一区二区| 欧美成人综合网站| 粉嫩高潮美女一区二区三区 | 日韩精品一二三四| 国产视频在线观看一区二区三区| 91蜜桃婷婷狠狠久久综合9色| 亚洲精品ww久久久久久p站| 亚洲国产精品传媒在线观看| 久久久久久久网| 91精品国产综合久久久久| 亚洲一区二区三区美女| 国产成人免费在线视频| 国产精品视频看| 欧美日韩一区在线| 精品久久久久99| 亚洲风情在线资源站| 亚洲成人一区在线| 欧美一区二区女人| 国产成人精品在线看| 日韩专区欧美专区| 久久久久久久久久久黄色| 欧美日韩高清一区二区三区| 欧美日韩亚洲丝袜制服| 免费成人在线观看视频| 亚洲综合免费观看高清在线观看| 成人av电影在线网| 天堂蜜桃一区二区三区| 国产精品免费看片| 不卡区在线中文字幕| 在线成人av网站| 久久精品国产久精国产爱| 中文字幕一区在线观看视频| 亚洲精品自拍动漫在线| 91偷拍与自偷拍精品| 国产精品短视频| 欧美成人aa大片| 中文字幕亚洲欧美在线不卡| 久草精品在线观看| 中文在线资源观看网站视频免费不卡| 色综合久久66| www.性欧美| 久久99这里只有精品| 视频一区在线视频| 欧美成人在线直播| 欧美一级二级三级乱码| av亚洲产国偷v产偷v自拍| 欧美亚洲动漫精品| 欧美日本乱大交xxxxx| 欧美成人三级电影在线| 亚洲婷婷在线视频| 国产中文字幕一区| 成人晚上爱看视频| 久久久久国产精品麻豆ai换脸 | 国产日韩欧美亚洲| 中文字幕中文在线不卡住| 日本视频免费一区| 国产精品一区二区在线观看不卡| 国产成人丝袜美腿| 国产在线一区二区| 成人av资源站| 欧美一区二区三区免费在线看| 欧美女孩性生活视频| 91麻豆精品国产自产在线观看一区| 亚洲欧美日韩系列| 亚洲精品成人少妇| 精品中文字幕一区二区小辣椒| 亚洲精品中文在线观看| 在线国产亚洲欧美| 色猫猫国产区一区二在线视频| 2021中文字幕一区亚洲| 美女www一区二区| 久久成人羞羞网站| 日韩写真欧美这视频| 国产做a爰片久久毛片| 国产精品综合av一区二区国产馆| 91国产丝袜在线播放| 日韩在线一区二区三区| 国产激情91久久精品导航| 国产精品私人自拍| 亚洲黄色小说网站| 国产精品一区在线| 日韩一级成人av| 亚洲欧美一区二区在线观看| 亚洲福利视频一区| 欧美中文字幕久久| 国产色一区二区| 日韩电影在线观看网站| 成人永久看片免费视频天堂| 免费在线看成人av| 国产成人av电影| 精品无人区卡一卡二卡三乱码免费卡| 一本色道**综合亚洲精品蜜桃冫| 欧美色综合久久| 91在线视频在线| 亚洲成av人影院| 欧美精品乱码久久久久久按摩| 亚洲成av人片在线| 欧美日韩在线三区| 国产欧美精品国产国产专区| 高清不卡一区二区| 日本二三区不卡| 精品久久国产字幕高潮| 韩国欧美国产1区| 国产一区二三区| 日韩av中文字幕一区二区三区| 久久久精品免费免费| 狠狠色丁香婷综合久久| 久久91精品国产91久久小草| 欧美一区二区三区视频免费| 亚洲国产精品传媒在线观看| 欧美在线你懂的| 欧美tk—视频vk|