翻译:introduce to tornado - introduce

介绍:

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

最初我是通过 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,等等。

 扩展阅读:C10K问题

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

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

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

 

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

 

tornado入门指南:

在大多数*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

转载于:https://my.oschina.net/f1eming/blog/113474

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值