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