如何理解 Tornado

如题所述

Tornado既是一个web server,也是web framework。而它作为web server 采用的是asynchronous IO的网络模型,这是一种很高效的模型。

  1. 高性能的网络库,这可以和gevent, twisted, libevent等做对。提供了异步io支持,超时事件处理,在此基础上提供了tcpserver, httpclient,尤其是curlhttpclient在现有http客户端中肯定排第一。可以用来做爬虫,游戏服务器,据我所知业界已有使用tornado作为游戏服务器。

  2. web框架,这可以和django, flask对。提供了路由,模板等web框架必备组件。与其他区别是tornado是异步的,天然适合长轮训,这也是friendfeed发明tornado的原因,当前flask也可以支持,但必须借住gevent等。

  3. 较为完备的http服务器,这点可以和nginx, apache对比,但只支持http1.0,所以使用nginx做前段不仅是为了更好利用多核,也是让其支持http1.1。

  4. 完备的wsgi服务器,这可以和gunicore,gevent wsgi server做对比,也就是说可以让flask运行在tornado之上,让tornado加速flask。

  5. 提供了完备的websocket支持,这让html5的游戏等提供了便利。像知乎长轮训就是使用了websocket,但websocket手机支持的不是很好,前段时间不得不使用定时ajax发送大量请求,期待手机浏览器赶快奋起直追。
温馨提示:答案为网友推荐,仅供参考
相似回答