翻译:introduce to tornado - introduce

介绍: node

tornado是由python写出来的一个性能强大、扩展性强的web服务器。它可以处理巨大的网络流量并发请求,它是一个轻量级的框架,能够很容易地进行配置、添加功能、集成不一样应用和工具。 python

最初我是经过 Bret Taylor 了解到FriendFeed使用tornado这个web服务器框架,后来FaceBook将FriendFeed收购以后将其开源出来。与最多只能承受10000并发链接的传统服务器框架不一样,tornado设计之初就考虑到了性能问题,它就是为了解决C10K问题而设计的,所以,它是一个性能很是强大的框架,同时它还集成了不少工具来处理安全性、用户身份验证、社交网络的问题,tornado还有着不错的异步通讯技术与外部接口进行交互,好比数据库和web的api接口。从2009年9月10日发布至今,tornado已经得到了大量的社区支持,而且增长了大量的应用扩展,除了FriendFeed和Facebook,还有许多公司也将其投入到生产环境中使用,包括Quora, Turntable.fm, Bit.ly , Hipmunk 和MyYearbook,等等。 git

 扩展阅读:C10K问题 github

相似于apache这种基于线程的服务器,为了处理每个传入的HTTP链接请求,须要维护一个系统链接池,Apache会将每个HTTP链接请求放入到链接池中,尽管Linux有着不一样的发行版,可是大多数的发行版的默认线程堆栈只有8MB,Apache的架构在出现大量的长链接时,须要维护一个庞大的链接池,以便与每个链接进行信息交互,这会占用大量的服务器内存,最终致使Apache性能负载过大而崩溃。 web

大多数社交网络应用都须要实时地显示更新信息、状态改变、用户通知等,这要求客户端和服务器保持长链接以便随时响应服务器的请求。这样的HTTP长链接和服务器推送的请求会很快地使Apache的线程池达到峰值,一旦线程池耗尽,服务器将没法再响应新的链接请求。 数据库

异步服务器是一个很是新的应用平台,他们是为了解决基于线程的web服务器的局限性而产生的。这些服务器有node.js,lighttpd,tornado,他们可以经过多进程协做优雅地解决大规模负载增长的问题,就是说异步服务器将会准确地响应来自数据或其它数据源的请求(例如:数据库查询或http请求)。当须要处理数据时,异步服务器会使用回调函数恢复一个已经挂起的操做,完成数据推送。在第五章咱们将会讨论这个回调模式的许多异步应用特性。 apache

 

总而言之,若是你正在寻找一个替换巨大的CMS或者一体化的开发框架,tornado也许不是一个最好的选择,tornado不适合用于配置一个巨大的模型或处理这一类特定模式的工做。tornado能够作到的仅仅只是让你很是轻松且快速地搭建web应用,若是你想要使用python快速地建立一个简单、可扩展的社交应用、实时的分析引擎、请求。那么这本书很是适合你。 windows

 

tornado入门指南: api

在大多数*nix系统下,安装和配置tornado是很是容易的,你只须要经过PyPI(easy_install或pip)便可完成安装,或者像这样从git下载并建立也能够: 安全

  1. $ curl -L -O http://github.com/downloads/facebook/tornado/tornado-2.1.1.tar.gz   
  2. $ tar xvzf tornado-2.1.1.tar.gz   
  3. $ cd tornado-2.1.1   
  4. $ python setup.py build   
  5. $ sudo python setup.py install  

tornado没有正式支持windows的版本,可是他能够经过 PyPM这个软件包管理工具进行安装:

  1. C:\> pypm install tornado  

 

一旦你完成tornado的安装,就能够开始以你最好的状态进行工做了!安装包中有大量的demo可供学习,它包含如下例子:一个blog、一个简单的facebook、一个聊天室等等,咱们将会在稍后一步一步的去学习这本书的内容,但我仍然建议你在看书以后查看这些参考的Demo。

在后面的实例中,咱们假设你使用的是unix的系统,安装了python2.6或2.7。若是是这样,你不须要再安装额外的标准库,就能够运行tornado。若是你安装的是版本低于python2.5,建议你再多安装: pycURL, simpleJSON 的开发包。tornado2.0已经开始支持python3.2以上的版本,可是tornado团队仍然建议你不要使用,由于目前还在收集tornado在python3.2以上的版本出现的缺陷。

社区和支持:

对于问题、例子以及通常的指南,官方的tornado文档是一个很不错的地方,那里有各类各样的例子和功能特性的缺陷文档。tornadoweb.org上你能够看到很是详细的更新文档。而在facebook的github仓库上你能够获取到最新版本的tornado源代码。更多的问题,你能够访问tornado在google group上面的讨论组,那上面天天都很是活跃。

 下一篇:译:introduce to tornado - a simple example

相关文章
相关标签/搜索