Tornado背景知識介紹

Tornado 是一個開源的網絡服務器框架,該平臺基於社交聚合網站 FriendFeed 的實時信息服務開發而來。2007年,4名谷歌前軟件工程師一起創辦了 FriendFeed,旨在使用戶能方便地跟蹤好友在 Facebook 和 Twitter 等多個社交網站上的活動。結果兩年後,Facebook 宣佈收購 FriendFeed,這一交易的價格約爲5000萬美元。而此時,FriendFeed 只有12名員工。據說這幫人後來又到了 Google,搞出了現在的Google App Engine …… 

Tornado 是 FriendFeed 使用的可擴展的非阻塞式 web 服務器及其相關工具的開源版本。這個 Web 框架看起來有些像 web.py 或者 Google 的 webapp,不過爲了能有效利用非阻塞式服務器環境,這個 Web 框架還包含了一些相關的有用工具和優化。

Tornado 和現在的主流 Web 服務器框架(包括大多數 Python 的框架)有着明顯的區別:它是非阻塞式服務器,而且速度相當快。得利於其非阻塞的方式和對 epoll 的運用,Tornado 每秒可以處理數以千計的連接,這意味着對於實時 Web 服務來說,Tornado 是一個理想的 Web 框架。

我們開發這個 Web 服務器的主要目的就是爲了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用裏每一個活動用戶都會保持着一個服務器連接。

模塊

Tornado 是個輕量級框架,它的模塊不多,最重要的一個模塊是web, 它就是包含了 Tornado 的大部分主要功能的 Web 框架。其它的模塊都是工具性質的, 以便讓 web 模塊更加有用 後面的 Tornado 攻略 詳細講解了 web 模塊的使用方法。

主要模塊

  • web - FriendFeed 使用的基礎 Web 框架,包含了 Tornado 的大多數重要的功能
  • escape - XHTML, JSON, URL 的編碼/解碼方法
  • database - 對 MySQLdb 的簡單封裝,使其更容易使用
  • template - 基於 Python 的 web 模板系統
  • httpclient - 非阻塞式 HTTP 客戶端,它被設計用來和 web 及 httpserver 協同工作
  • auth - 第三方認證的實現(包括 Google OpenID/OAuth、Facebook Platform、Yahoo BBAuth、FriendFeed OpenID/OAuth、Twitter OAuth)
  • locale - 針對本地化和翻譯的支持
  • options - 命令行和配置文件解析工具,針對服務器環境做了優化

底層模塊

  • httpserver - 服務於 web 模塊的一個非常簡單的 HTTP 服務器的實現
  • iostream - 對非阻塞式的 socket 的簡單封裝,以方便常用讀寫操作
  • ioloop - 核心的 I/O 循環
發佈了62 篇原創文章 · 獲贊 9 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章