23.5.1. Tornado框架简介

Tornado也是一种目前比较流行的、强大的、可扩展的Python的Web非阻塞式开源服务器框架,也是一个异步的网络库。让你能够快速简单地编写高速的Web应用。

Tornado是基于Bret Taylor和其他人员为FriendFeed所开发的网络服务框架,当FriendFeed被Facebook收购后得以开源。Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使得其成为一个拥有非常高性能的框架。此外,它还拥有处理安全性、用户验证、社交网络以及与外部服务(如数据库和网站API)进行异步交互的工具。

自2009年发布以来,Tornado已经获得了很多社区的支持,并且在一系列不同的场合得到应用。除FriendFeed和Facebook外,还有很多公司在生产上转向Tornado,包括Quora、Turntable.fm、Bit.ly、Hipmunk以及MyYearbook等。

其主要特性有:

  • 非阻塞式服务器;

  • 速度相当快;

  • 并发打开数千连接;

  • 支持WebSocket连接。

Tornado库可以大体上分为四个部分:

  • tornado.Web——创建Web应用程序的Web框架;

  • HTTPServer和AsyncHTTPClient——HTTP服务器与异步客户端;

  • IOLoop和IOStream——异步网络功能库;

  • tornado.gen——协程库。

从编程风格上来看,使用Tornado框架编写Web服务器端更像是面对对象编程。