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 相关文章推荐
python使用urllib2实现发送带cookie的请求
Apr 28 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
对Python 获取类的成员变量及临时变量的方法详解
Jan 22 Python
python绘制评估优化算法性能的测试函数
Jun 25 Python
Python 私有化操作实例分析
Nov 21 Python
Python 实现数组相减示例
Dec 27 Python
TensorFlow tensor的拼接实例
Jan 19 Python
Python3 io文本及原始流I/O工具用法详解
Mar 23 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 Python
pycharm2020.2 配置使用的方法详解
Sep 16 Python
python里glob模块知识点总结
Jan 05 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备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
node.js中的http.response.end方法使用说明
2014/12/14 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
分享vue里swiper的一些坑
2018/08/30 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
layui 上传图片 返回图片地址的方法
2019/09/26 Javascript
python查询sqlite数据表的方法
2015/05/08 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
python验证码识别的实例详解
2016/09/09 Python
Python模块WSGI使用详解
2018/02/02 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
2014/06/16 HTML / CSS
常见的软件开发流程有哪些
2015/11/14 面试题
趣味体育活动方案
2014/02/08 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
学校安全防火方案
2014/06/07 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
廉洁自律心得体会2016
2016/01/13 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python