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使用rabbitmq实现网络爬虫示例
Feb 20 Python
python实现简易通讯录修改版
Mar 13 Python
django项目搭建与Session使用详解
Oct 10 Python
selenium+python截图不成功的解决方法
Jan 30 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
详解python中init方法和随机数方法
Mar 13 Python
python游戏开发之视频转彩色字符动画
Apr 26 Python
python 返回一个列表中第二大的数方法
Jul 09 Python
python实现贪吃蛇双人大战
Apr 18 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
8种常用的Python工具
Aug 05 Python
一小时学会TensorFlow2之基本操作2实例代码
Sep 04 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 第三节 变量介绍
2012/04/28 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
PHP实现通过二维数组键值获取一维键名操作示例
2019/10/11 PHP
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
Jquery实现纵向横向菜单
2016/01/24 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
Vuex中的State使用介绍
2019/01/19 Javascript
JavaScript碰撞检测原理及其实现代码
2020/03/12 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
Python中Continue语句的用法的举例详解
2015/05/14 Python
初步讲解Python中的元组概念
2015/05/21 Python
人生苦短我用python python如何快速入门?
2018/03/12 Python
Python 从一个文件中调用另一个文件的类方法
2019/01/10 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Python GUI库PyQt5样式QSS子控件介绍
2020/02/25 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
python设置表格边框的具体方法
2020/07/17 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
如何理解委托
2012/01/06 面试题
日语系毕业生推荐信
2013/11/11 职场文书
师德师风自我评价范文
2014/09/11 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
校运动会广播稿300字
2014/10/07 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
诚实守信主题班会
2015/08/13 职场文书
NodeJs使用webpack打包项目的方法详解
2022/02/28 NodeJs
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技