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 相关文章推荐
python33 urllib2使用方法细节讲解
Dec 03 Python
python抓取网页图片示例(python爬虫)
Apr 27 Python
centos系统升级python 2.7.3
Jul 03 Python
用Python实现QQ游戏大家来找茬辅助工具
Sep 14 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
Jan 07 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
Python线上环境使用日志的及配置文件
Jul 28 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
Aug 31 Python
学python爬虫能做什么
Jul 29 Python
python中对列表的删除和添加方法详解
Feb 24 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中使用Oracle数据库(3)
2006/10/09 PHP
PHP伪静态页面函数附使用方法
2008/06/20 PHP
关于PHP中Object对象的笔记分享
2011/06/28 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
PHP生成唯一ID之SnowFlake算法
2016/12/17 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
JQuery操作单选按钮以及复选按钮示例
2013/09/23 Javascript
理解AngularJs指令
2015/12/10 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
解决python删除文件的权限错误问题
2018/04/24 Python
windows下python安装pip图文教程
2018/05/25 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
用Pytorch训练CNN(数据集MNIST,使用GPU的方法)
2019/08/19 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
详解Python 中sys.stdin.readline()的用法
2019/09/12 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
乌克兰时尚鞋子和衣服购物网站:Born2be
2018/05/24 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
工程测量与监理专业应届生求职信
2013/11/27 职场文书
银行优秀员工事迹
2014/02/06 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
大学生入党群众意见书
2015/06/02 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
话题作文之学会尊重
2019/12/16 职场文书
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers
python数字图像处理之图像的批量处理
2022/06/28 Python
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技