根據(jù)網(wǎng)上公開資料整理的Twitter架構(gòu),主要是cache方面,加了作者自己的補(bǔ)充,跟實(shí)際的架構(gòu)未必完全一致。
一些數(shù)據(jù):
- Cache分Page cache, fragment cache, row cache, vector Cache, cache命中率見圖。
- Fragment cache存放了API各種請求格式的數(shù)據(jù),包括XML, JSON, RSS, ATOM。
- 發(fā)表Tweets是先放入Kestrel, 再異步處理,Kestrel用的也是memcached協(xié)議。
- API requests: 550 r/s。
- POST tweets: 峰值:平時(shí) 80tweets/s, 奧巴馬就任時(shí)達(dá)到 350tweets/s。
- Aggregator模塊需要訪問memcached multi get 數(shù)百個(gè)/s。
- Ruby on Rails前面還用了Varnish作前端反向代理。
參考資料: