亿级用户下的新浪微博平台架构阅读心得
新浪微博在2014年3月公布的月活躍用戶(MAU)已經達到1.43億,2014年新年第一分鐘發(fā)送的微博達808298條,如此巨大的用戶規(guī)模和業(yè)務量,需要高可用(HA)、高并發(fā)訪問、低延時的強大后臺系統(tǒng)支撐。
微博平臺第一代架構為LAMP架構,數(shù)據(jù)庫使用的是MyIsam,后臺用的是php,緩存為Memcache。
?
隨著應用規(guī)模的增長,衍生出的第二代架構對業(yè)務功能進行了模塊化、服務化和組件化,后臺系統(tǒng)從php替換為Java,逐漸形成SOA架構,在很長一段時間支撐了微博平臺的業(yè)務發(fā)展。
?
在此基礎上又經過長時間的重構、線上運行、思索與沉淀,平臺形成了第三代架構體系。
?
如其他大中型互聯(lián)網應用一樣,微博平臺由眾多的分布式組件構成,用戶通過瀏覽器或移動客戶端的每一個HTTP請求到達應用服務器后,會經過很多個業(yè)務系統(tǒng)或系統(tǒng)組件,并留下足跡(footprint)。但是這些分散的數(shù)據(jù)對于問題排查,或是流程優(yōu)化都幫助有限。對于這樣一種典型的跨進程/跨線程的場景,匯總收集并分析這類日志就顯得尤為重要。另一方面,收集每一處足跡的性能數(shù)據(jù),并根據(jù)策略對各子系統(tǒng)做流控或降級,也是確保微博平臺高可用的重要因素。要能做到追蹤每個請求的完整調用鏈路;收集調用鏈路上每個服務的性能數(shù)據(jù);能追蹤系統(tǒng)中所有的Error和Exception;通過計算性能數(shù)據(jù)和比對性能指標(SLA)再回饋到控制流程(control flow)中,基于這些目標就誕生了微博的Watchman系統(tǒng)。
該系統(tǒng)設計的一個核心原則就是低侵入性(non-invasivenss):作為非業(yè)務組件,應當盡可能少侵入或者不侵入其他業(yè)務系統(tǒng),保持對使用方的透明性,可以大大減少開發(fā)人員的負擔和接入門檻。基于此考慮,所有的日志采集點都分布在技術框架中間件中,包括接口框架、RPC框架以及其他資源中間件。
WatchMan由技術團隊搭建框架,應用在所有業(yè)務場景中,運維基于此系統(tǒng)完善監(jiān)控平臺,業(yè)務和運維共同使用此系統(tǒng),完成分布式服務治理,包括服務擴容與縮容、服務降級、流量切換、服務發(fā)布與灰度。
現(xiàn)在,技術框架在平臺發(fā)揮著越來越重要的作用,驅動著平臺的技術升級、業(yè)務開發(fā)、系統(tǒng)運維服務,本文限于篇幅限制,沒有展開介紹,后續(xù)會不斷地介紹核心中間件的設計原則和系統(tǒng)架構。
轉載于:https://www.cnblogs.com/andibier/p/11055320.html
總結
以上是生活随笔為你收集整理的亿级用户下的新浪微博平台架构阅读心得的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用IDEA2017创建java web
- 下一篇: Educational Codeforc