Python Tornado核心及相关原理详解


Posted in Python onJune 24, 2020

Tornado的核心是什么?Tornado 的核心是 ioloop 和 iostream 这两个模块,前者提供了 一个高效的 I/O 事件循环,后者则封装了 一个无阻塞的 socket 。 通过向 ioloop 中添加网络 I/O 事件,利用无阻塞的 socket ,再搭配相应的回调函数,便可达到梦寐以求的高效异步执行。

一、Tornado简介

Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架,由FriendFeed公司在自己的网站FriendFeed中使用,被Facebook收购以后框架在2009年9月以开源软件形式开放给大众。

二、Tornado特点:

作为Web框架,是一个轻量级的Web框架,其拥有异步非阻塞IO的处理方式。

作为Web服务器,Tornado有较为出色的抗负载能力,官方用nginx反向代理的方式部署Tornado和其它Python web应用框架进行对比,结果最大浏览量超过第二名近40%。

三、Tornado性能:

Tornado有着优异的性能。它试图解决C10k问题,即处理大于或等于一万的并发。

Tornado框架和服务器一起组成一个WSGI的全栈替代品。单独在WSGI容器中使用tornado网络框架或者tornaod http服务器,有一定的局限性,为了最大化的利用tornado的性能,推荐同时使用tornaod的网络框架和HTTP服务器。

四、应用场景

1,用户量大,高并发

如秒杀抢购、双十一某宝购物、春节抢火车票

2,大量的HTTP持久连接

使用同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每一个新的请求/应答打开新的连接的方法。

对于HTTP 1.0,可以在请求的包头(Header)中添加Connection: Keep-Alive。

四、Tornado开发方向:

Tornado走的是少而精的方向,注重的是性能优越,它最出名的是异步非阻塞的设计方式。

  • HTTP服务器

  • 异步编程

  • WebSockets

五、tornado的基础web框架模块

RequestHandler

封装了对应一个请求的所有信息和方法,write(响应信息)就是写响应信息的一个方法;对应每一种http请求方式(get、post等),把对应的处理逻辑写进同名的成员方法中(如对应get请求方式,就将对应的处理逻辑写在get()方法中),当没有对应请求方式的成员方法时,会返回“405: Method Not Allowed”错误。

Application

Tornado Web框架的核心应用类,是与服务器对接的接口,里面保存了路由信息表,其初始化接收的第一个参数就是一个路由信息映射元组的列表;其listen(端口)方法用来创建一个http服务器实例,并绑定到给定端口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Web服务器框架 Tornado简介
Jul 16 Python
Python入门_浅谈字符串的分片与索引、字符串的方法
May 16 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
Python判断两个对象相等的原理
Dec 12 Python
Python利用turtle库绘制彩虹代码示例
Dec 20 Python
python中单例常用的几种实现方法总结
Oct 13 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python 写一个文件分发小程序
Dec 05 Python
Pandas 稀疏数据结构的实现
Jul 25 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 24 #Python
pytorch SENet实现案例
Jun 24 #Python
利用PyTorch实现VGG16教程
Jun 24 #Python
python安装读取grib库总结(推荐)
Jun 24 #Python
Pytorch mask-rcnn 实现细节分享
Jun 24 #Python
在Pytorch中使用Mask R-CNN进行实例分割操作
Jun 24 #Python
OpenCV+python实现实时目标检测功能
Jun 24 #Python
You might like
php Mysql日期和时间函数集合
2007/11/16 PHP
PHP实现HTTP断点续传的方法
2015/06/17 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
Jquery实现由下向上展开效果的例子
2014/12/08 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
JS实现title标题栏文字不间断滚动显示效果
2016/09/07 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
JS实现DIV高度自适应窗口示例
2017/02/16 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
three.js实现圆柱体
2018/12/30 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
微信小程序自定义胶囊样式
2020/12/27 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
医药个人求职信范文
2014/01/29 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
数学考试作弊检讨书300字
2015/02/16 职场文书
个性发展自我评价2015
2015/03/09 职场文书
管理失职检讨书范文
2015/05/05 职场文书
2015年初三班主任工作总结
2015/05/21 职场文书
css3 选择器
2022/05/11 HTML / CSS