FriendFeed释出私家Web服务器框架:Tornado

来源:互联网 发布:淘宝网英国sha80刺刀 编辑:程序博客网 时间:2024/04/28 12:58

令人振奋的消息:一个月前被Facebook收购的FriendFeed,在昨天放出了他们的私家Web服务器:名为Tornado的Web服务器框架。Facebook的开源产品阵营再添一员大将,此前这家位于硅谷的全球最大社交网站相继开放了他们的跨语言RPC框架(Thrift)、FBML引擎(Facebook Open Platform)、PHP调试工具(XHProf)等,每一个都是重量级产品。

Tornado由Python编写,是一款轻量级的Web服务器,同时又是一个开发框架。采用非阻塞I/O模型(epoll),主要是为了应对高并发 访问量而被开发出来,尤其适用于comet应用。Python社区原本也有很多优秀的开源Web服务器和框架,但是FriendFeed出于对性能和一些 特性的需要,尤其是其业务上对实时性要求非常之高,主流的Web服务器和框架很难兼顾到这些业务特点,所以FriendFeed决定自己开发。

确 实,Tornado在性能上卓而不凡,有图为证:

Tornado benchmark

Tornado有点像web.py 和 Google的 webapp,但是附加了很多工具,同时针对FriendFeed的业务特点,进行了一些优化从而带来非阻塞式Web服务器的优点,归纳起来Tornado有如下特性:

  • 集成网站常用的基本组件:Tornado内建了很多组件,来使Web开发中复杂事情简单化,减少重复 劳动。这些组件包括:模板引擎、Cookies用户登录、认证、L10N、静态文件缓存、CSRF攻击防护、第三方登录(像Facebook Connect)。Tornado组件非常易用,同时即便你在Tornado Web服务器来运行其它的框架,也可以使用这些组件。
  • 能够支撑实时应用:Tornado能够支撑大量的并发连接,用Tornado很容易开发需要长轮询(long polling)和HTTP流的应用。在FriendFeed,每一个活动用户与服务器之间甚至用长连接的方式居然也能承受。
  • 高性能:与大多数Python框架相比,Tornado非常的快。FriendFeed拿Tornado和其它的一些主流框架做过压力测试,Tornado的吞吐量高出其它框架4倍之巨。

在Facebook的支持下,有理由相信Tornado会成为web.py、Django的有力竞争者。