当前位置:网站首页>Tornado初识
Tornado初识
2022-07-28 05:20:00 【可宇龙】

简介
Tornado是一个开源的网络服务器框架,它是基于社交聚合网站FriendFeed的实时信息服务开发而来的。2007年由4名Google前软件工程师一起创办了FriendFeed,旨在使用户能够方便地跟踪好友在Facebook和Twitter等多个社交网站上的活动。结果两年后,Facebook宣布收购FriendFeed,交易价格约为5000万美元。而此时FriendFeed只有12名员工。据说这帮人后来又到了Google,搞出了现在的Google App Engine...
我们开发这个Web服务器的主要目的就是为了处理FriendFeed的实时功能 -- 在FriendFeed的应用里每个活动用户都会保持着一个服务器连接。
Tornado使FriendFeed使用的可扩展的非阻塞Web服务器及其相关工具的开源版本,这个Web框架看起来有些像web.py或 Google的webapp,不过为了更加有效地利用非阻塞服务器环境,Tornado这个Web框架还包含了一些相关的有用工具和优化。
区别
Tornado与现代主流的Web服务器框架有着明显的区别:它使非阻塞式的服务器,速度相当快。这得益于其非阻塞的方式和对epoll的运用。Tornado每秒可以处理数以千计的连接,对于实时Web服务来说Tornado确实是一个理想的Web框架。
与Node.js相同的是,Tornado也采用的是单进程单线程异步IO的网络模型,它们都可以编写异步非阻塞的程序。但由于Node.js是Google Chrome V8引擎的JS运行环境或工具包,它属于偏底层的抽象,扩展了JS编写服务器程序的能力,所以基于Node.js会由不同的Web框架。从这个角度来看Node.js和Tornado其实并不在一个层次上。
Tornado是使用Python编写的Web服务器兼Web应用框架,与主流Web服务器框架不同的是,Tornado是异步非阻塞式服务器,得益于非阻塞式和对epoll模型的运用,Tornado是实时Web服务的一个理想框架,它非常适合开发长轮询、WebSocket和需要与每个用户建立持久连接的应用。
特点
- 轻量级Web框架
- 异步非阻塞IO处理方式
Tornado采用的单进程单线程异步IO的网络模式,其高性能源于Tornado基于Linux的Epoll(UNIX为kqueue)的异步网络IO。 - 出色的抗负载能力
- 不依赖多进程或多线程
- WSGI全栈替代产品
WSGI把应用(Application)和服务器(Server)结合起来,Tornado既可以是WSGI应用也可以是WSGI服务。 - 既是WebServer也是WebFramework
Tornado是基于Bret Taylor和其他人员为FrientFeed所开发的网络服务框架,当FriendFeed被Facebook收购后得以开源。不同于那些最多只能达到1w并发连接的传统网络服务器。Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使其成为一个拥有高性能的框架。
边栏推荐
猜你喜欢
随机推荐
结果填空 李白打酒(心态炸了)
南京邮电大学CTF题目writeup (二) 含题目地址
Acquisition of mental health service system based on PHP (PHP graduation design)
反弹shell的N种姿势
极客大挑战2019-SQL注入五题PW
初学移动端
animation动画复合属性
new,let,var,const以及暂时性死区,xml和json的区别
Help document making based on easy CHM and vs
截图传入后台
Books - social animals
ArcMap map map projection related operations
js-宏任务和微任务
使用sourcetree推送仓库时 Failed to connect to www.google.com port 80: Timed out
结果填空 凑算式(DFS*C语言)
(PHP graduation project) obtained based on PHP student homework submission management system
Canvas绘图2
对象内多个数组的对应下标相加
【面试题】防抖和节流
ArcGIS Engine开发资源









