首页 > Python编程 > Tornado的背景与特性

Tornado的背景与特性

2015年9月10日

Tornado的背景与特性

http://www.nowamagic.net/academy/detail/1332105

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 的应用里每一个活动用户都会保持着一个服务器连接。

2013_10_14_02

模块

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 循环
分类: Python编程 标签:
本文的评论功能被关闭了.