分享:知乎的網(wǎng)站架構(gòu)

1. Python框架

知乎目前使用的是Tornado框架。

參考鏈接:http://zh.wikipedia.org/wiki/Tornado

學(xué)習(xí)文檔:http://www.tornadoweb.cn/documentation

2. 數(shù)據(jù)庫

目前知乎采用的是MySQL作為主要的存儲,使用SqlAlchemy為ORM進(jìn)行數(shù)據(jù)庫的建?;蛘哂成?。

3. 緩存技術(shù)

知乎使用Redis來進(jìn)行緩存、隊列、計數(shù)或者任務(wù),使用Redis-Py為其連接客戶端。

Redis參考鏈接:http://redis.readthedocs.org/en/latest/index.html

Redis-Py參考鏈接:http://redis-py.readthedocs.org/en/latest/index.html

4. JavaScript框架

知乎使用Google的Closure Library作為前端的JavaScript框架。

5. 負(fù)載處理

目前知乎使用的是nginx做反向代理,使用nginx進(jìn)行靜態(tài)文件等大數(shù)量的I/O操作。

6. 圖片服務(wù)

知乎以前使用的是Upyun,現(xiàn)在已經(jīng)遷移到知乎自己所建的圖片服務(wù)上。

7. 郵件服務(wù)

知乎的郵件發(fā)送剛開始使用的是Amazon的SES,由于SES有些功能不能滿足需求,目前已經(jīng)轉(zhuǎn)換成Mailgun。

8. 消息系統(tǒng)

知乎消息系統(tǒng)依靠comet實現(xiàn)。

9. 虛擬環(huán)境

作為一個Python網(wǎng)站,知乎很有可能采用Virtualenv來解決純凈的包環(huán)境問題。

中文文檔地址:http://virtualenv-chinese-docs.readthedocs.org/en/latest/index.html

10. 代碼部署

常見的Python項目基本上采用Fabric進(jìn)行部署,不知道知乎到底用的是哪一個。

11. 搜索實現(xiàn)

知乎使用mmseg做中文分詞,對應(yīng)的詞根存在redis中作為key,數(shù)據(jù)庫id作為value,每個數(shù)據(jù)項是一個zset集合(有序集合)。查詢時根據(jù)key找到對應(yīng)的value。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容