架构分享--微博架构
?先來分享下大神Tim Yang的關(guān)于微博的架構(gòu)設(shè)計:
這里主要從 存儲和接口角度來講
對于大流量系統(tǒng)的架構(gòu)設(shè)計,對于寫入方面是特別需要注意的,基本上現(xiàn)在遇到的系統(tǒng)都是對于主數(shù)據(jù)庫的寫入,然后對于從數(shù)據(jù)庫實現(xiàn)流量的分發(fā)。
對于存儲,記得公司老大說過,對于BD的項目的架構(gòu)如果從設(shè)計上可以達到20PB的存儲規(guī)模不出什么大的問題,就說明這個架構(gòu)設(shè)計是合格的。
對于存儲,新浪微博使用了redis的部分功能,主要用在用戶信息方面的使用,現(xiàn)在只有單機設(shè)計,但是對于現(xiàn)在的單機完全可以提供大量的內(nèi)存比如32G以上,完全可以達到存儲數(shù)據(jù)的要求。
對于MYSQL這里所涉及到的就是設(shè)計規(guī)范和分庫分表,最大的感觸是大家為了便利就直接用自增的ID來進行,對于唯一ID的設(shè)計也是我一直注意的,因為唯一的設(shè)計是涉及到全局的。
將將自己最近總結(jié)的PHP和微博架構(gòu)方面:
1.進行快速開發(fā)的過程中,訂好規(guī)范,按照規(guī)范執(zhí)行是非常的重要的,涉及到的溝通會比較少,其實和其他人聯(lián)調(diào)是很費時間的。
2.對于性能跟蹤方面使用使用xhprof來跟蹤PHP的執(zhí)行過程及性能問題,可以初略的估計出來。
3.對于核心代碼的復(fù)用程度及核心的代碼量的把握,核心要靈活可擴展而且保持小
4.技術(shù)選型比如對于使用memcache擴展和memcached的擴展還是很重要的
5.對于代碼的目錄結(jié)構(gòu)和命名還是挺重要的,php的autoload不要搜索太多的目錄會比較好
6.考慮下工具類的復(fù)用,一直在造輪子每次都重寫一遍,這個不是很郁悶的事情,怎么樣讓這些類不要耦合的太緊?設(shè)計很重要
7.對于有些服務(wù)是PHP做起來不合適的,比如spam模塊的高危詞過濾還是用C/C++模塊來處理比較好。
8.微博技術(shù)的應(yīng)用Inbox/Outbox/Timeline/Following/Follows/Feed/MQS
9.推薦算法和消息推送的處理,各種高并發(fā)的處理
總結(jié)
以上是生活随笔為你收集整理的架构分享--微博架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: system函数的返回值和执行脚本的返回
- 下一篇: 网络游戏的客户端同步问题 .