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输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
Python使用Redis实现作业调度系统(超简单)
Mar 22 Python
利用python循环创建多个文件的方法
Oct 25 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
Python编程学习之如何判断3个数的大小
Aug 07 Python
pytorch 模型可视化的例子
Aug 17 Python
python爬虫-模拟微博登录功能
Sep 12 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
Python偏函数实现原理及应用
Nov 20 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 Python
python模板入门教程之flask Jinja
Apr 11 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
用文本文件制作留言板提示(下)
2006/10/09 PHP
用PHP的ob_start();控制您的浏览器cache!
2007/02/14 PHP
PHP根据IP判断地区名信息的示例代码
2014/03/03 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
PHP实现HTML页面静态化的方法
2015/11/04 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
php获取linux命令结果的实例
2017/03/13 PHP
JS 事件绑定函数代码
2010/04/28 Javascript
用jQuery打造TabPanel效果代码
2010/05/22 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
2016/10/24 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
Python制作数据导入导出工具
2015/07/31 Python
Python正则表达式使用经典实例
2016/06/21 Python
Python绘制3d螺旋曲线图实例代码
2017/12/20 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
Python下调用Linux的Shell命令的方法
2018/06/12 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
The Body Shop美体小铺西班牙官网:天然化妆品
2019/06/21 全球购物
通信工程专业个人找工作求职信范文
2013/09/21 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
珍爱生命演讲稿
2014/05/10 职场文书
党员对照检查材料
2014/09/22 职场文书
合作协议书模板
2014/10/10 职场文书
教师党员自我评价范文
2015/03/04 职场文书
小学生表扬稿范文
2015/05/05 职场文书
戒赌保证书
2015/05/11 职场文书
利用python做表格数据处理
2021/04/13 Python
Python Django模型详解
2021/10/05 Python
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS