[轉載]知乎技術方案初探——基於Python的Tornado架構

來源:互聯網
上載者:User

標籤:

原文出處:http://nonfu.me/p/5935.html

知乎的整個網站架構圖如下:

知乎技術方案

知乎是國內很少的使用Python開發的一個網站,也很多值得我們學習的地方,從知乎讓我們也可以瞭解到一些新的WEB技術。

一、Python架構

知乎目前使用的是Tornado 架構。Tornado 全稱Tornado Web Server,是一個用Python 語言寫成的Web 服務器兼Web 應用程式架構,由 FriendFeed 公司在自己的網站FriendFeed 中使用,被facebook 收購以後架構以開源軟體形式開放給福士。

參考連結:http://zh.wikipedia.org/wiki/Tornado

學習文檔:http://www.tornadoweb.cn/documentation

二、資料庫

目前知乎採用的是MySQL作為主要的儲存,使用SqlAlchemy 為ORM進行資料庫的建模或者映射。

三、緩衝技術

知乎使用Redis來進行緩衝、隊列、計數或者任務,使用Redis-Py為其串連用戶端。

Redis參考連結:http://redis.readthedocs.org/en/latest/index.html

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

四、Javascript架構

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

五、負載處理

目前知乎使用的是nginx做反向 Proxy,用nginx來做靜態檔案等大資料量的I/O操作。

六、圖片服務

知乎以前用到的Upyun,現在已經遷移到知乎自己建的圖片服務上。

七、郵件服務

知乎的郵件發送一開始使用的是Amazon的SES,由於SES有些功能不能滿足需求,目前已經轉換成Mailgun。

八、訊息系統

知乎訊息系統採用的是comet實現,comet是基於http長串連的“伺服器推”技術。

九、虛擬環境

作為一個Python網站,知乎很有可能採用Virtualenv來解決純淨的包環境問題。

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

十、代碼部署

常見的Python項目基本上採用Fabric進行部署,不知道知乎到底用的是哪一個。

十一、搜尋實現

知乎使用mmseg做中文分詞,對應的詞根存在redis中作為key,資料庫id作為value,每個資料項目是一個zset集合。查詢時根據key找到對應的value。

[轉載]知乎技術方案初探——基於Python的Tornado架構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.