Sina微博構(gòu)架師-楊衛(wèi)華:構(gòu)建可擴(kuò)展的微博系統(tǒng)_第1頁
Sina微博構(gòu)架師-楊衛(wèi)華:構(gòu)建可擴(kuò)展的微博系統(tǒng)_第2頁
Sina微博構(gòu)架師-楊衛(wèi)華:構(gòu)建可擴(kuò)展的微博系統(tǒng)_第3頁
Sina微博構(gòu)架師-楊衛(wèi)華:構(gòu)建可擴(kuò)展的微博系統(tǒng)_第4頁
Sina微博構(gòu)架師-楊衛(wèi)華:構(gòu)建可擴(kuò)展的微博系統(tǒng)_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

構(gòu)建可擴(kuò)展微博架構(gòu)TimYang新浪微博技術(shù)架構(gòu)師從博客到微博博客功能發(fā)表瀏覽留言ContentManagerSystem博客技術(shù),LAMPMySQLmaster/slaveMemcachedPHPCDN微博微博,產(chǎn)品Real-time關(guān)注關(guān)系信息聚合信息聚合信息聚合微博兩種信息聚合設(shè)計(jì)模式Push(推)Pull(拉)Push把微博看做郵件Inbox:收到的微博Outbox:已發(fā)表微博發(fā)表:存到所有粉絲inbox(重)查看:直接訪問Inbox(輕)Push(Figure)UserAUpdateActionInbox(Appendto1’shometimeline)Inbox(Appendto2’shometimeline)Inbox(Appendto3’shometimeline)FollowersofUserA=1,2,3Push優(yōu)點(diǎn):實(shí)現(xiàn)簡單,首選缺點(diǎn):分發(fā)量Pull發(fā)表:存到自己outbox(輕)查看:所有關(guān)注對象Inbox(重)PullUserIGethome_timelineOutbox(statusessentbyA)Outbox(StatusessentbyB)Outbox(StatusessentbyC)UserI’sFollowingList=A,B,CPull優(yōu)點(diǎn):節(jié)約存儲(chǔ)缺點(diǎn):計(jì)算量大微博是一個(gè)消息分發(fā)系統(tǒng)可采取推或拉的方式實(shí)現(xiàn)架構(gòu)挑戰(zhàn):峰值-如除夕、春節(jié)請求量如果發(fā)表量5,000萬/天平均:578條/秒設(shè)計(jì)系統(tǒng)容量:2,000?IO瓶頸峰值:5,000–10,000?100,000?后果LatencyDBreadtimeout前端timeout(503error)解決方案?異步設(shè)計(jì)不同步等待將消息存入消息隊(duì)列(MessageQueue)輕量級的發(fā)表MQproductsKestrelbytwitterRabbitMQ,anErlangQueueServerMemcacheq在新浪微博工程大規(guī)模使用Memcacheq基于Berkeleydb,穩(wěn)定可靠Memcachedprotocol,豐富的clientlibrary容易監(jiān)控(statsqueue)只有2個(gè)命令:get/set防止單點(diǎn)故障核心效勞,需防止單獨(dú)故障方法使用多個(gè)Memcacheq池Get操作:輪詢所有效勞器Set操作:隨機(jī)選擇一個(gè)無需其他復(fù)雜“架構(gòu)”設(shè)計(jì)MQ方式通用的優(yōu)點(diǎn)Offlinework應(yīng)用請求量不均衡解耦異步通訊原那么使用MQ原那么計(jì)算開銷大于消息分發(fā)開銷架構(gòu)挑戰(zhàn):實(shí)時(shí)性越重要的事件,越希望實(shí)時(shí)性Thevalueofthetweetdecreasesexponentiallywithtime

JohnKalucki,Twitter://t.sina/pub/star#a_ty解決思路Cache中心化RamisthenewthediskLocalCacheMemcachedDatabasebuffer/cacheLAMP中,cache=可選層Cache中心化后新的問題容量問題TB級思路:壓縮QuickLZLZO不用gzip單點(diǎn)問題單點(diǎn)故障,SIGSEGV如何應(yīng)對1.Consistenthash2.Read-throughcacheConsistenthash原理優(yōu)點(diǎn)震蕩最小Read-throughcacheRead-throughandWrite-throughProductsorprojectsMySQLmemcachedUDFCachemoneyforRubyonRailsOrwrapaproxyforthedbdriver,inanylanguageEvictions問題Evections:cache數(shù)據(jù)被踢性能的噩夢Latency產(chǎn)生的源頭之一如何防止evictions規(guī)劃cache容量將永久數(shù)據(jù)與臨時(shí)數(shù)據(jù)分開不使用隨機(jī)字符作為keyMultiget問題WhenmemcachedserversareCPUbound,addingmorememcachedserversdoesn'thelpservemorerequests.-JeffRothschild,VicePresidentofTechnologyatFacebookCache挑戰(zhàn):multigethole解決方法Memcachedreplication架構(gòu)挑戰(zhàn):海量存儲(chǔ)架構(gòu)挑戰(zhàn):國內(nèi)網(wǎng)絡(luò)帶寬問題地理分布考慮到以下原因,需要分布式部署訪問速度IDC不可用故障分布的核心是數(shù)據(jù)分布數(shù)據(jù)地理分布原理Master-slaveMaster-master2PC/3PCPaxos:///data/multi-idc-design//地理分布的方案MySQLmaster/slaveDynamo/CassandraPNUTS架構(gòu)挑戰(zhàn):API訪問量以新浪微博開放平臺(tái)為例RESTAPI編程簡單,library豐富可用curl,javascript實(shí)現(xiàn)一個(gè)client缺點(diǎn)單向詢問方式如何解決輪詢壓力解決方案:SinaAppEngineSinaAppEngine應(yīng)用云平臺(tái)提供微博A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論