共计 993 个字符,预计需要花费 3 分钟才能阅读完成。
一、tornado 简介
1、概述
Tornado 是一种 Web 服务器软件的开源版本。Tornado 和主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别 它是非阻塞式服务器,而且速度相当快
得利于其非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,因此 Tornado 是实时 Web 服务的一个 理想框架
2、阻塞
阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回
阻塞等待 :空出大脑可以安心睡觉。(不占用 CPU 宝贵的时间片)
3、非阻塞
非阻塞和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回
非阻塞,忙轮询 :浪费时间,浪费电话费,占用快递员时间(占用 CPU,系统资源)
4、epoll
epoll 是 Linux 内核为处理大批量文件描述符而作了改进的 poll,是 Linux 下多路复用 IO 接口 select/poll 的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统 CPU 利用率
epoll 特点好处
增加了对 I / O 多路复用的技术
只关心“活跃”的链接,无需遍历全部描述符集合
能够处理大量的链接请求 (系统可以打开的文件数目)
二、Tornado 与 Django 对比
1、Tornado
-
优点
轻量、异步非阻塞 IO 处理方式、出色的抗负载能力、协程带来优异的处理性能
-
缺点
没有 ORM, 提供的支持和模板少,缺少后台支持,对小型项目来说开发速度没有 django 快
分析:tornado 所谓的“缺点”是由它的设计理念决定的,设计上就决定它是一个小而精的 http 服务器 + 轻量级 web 框架,高并发处理才是它真正擅长的
2、Django
-
优点
大而全的框架,全自动化的管理后台带来超高的开发效率,丰富的组件
-
缺点
厚重,与他自己的 ORM 高耦合
分析:Django 提供的方便,也意味着 Django 内置的 ORM 跟框架内的其他模块耦合程度高。应用程序必须使用 Django 内置的 ORM,否则就不能享受到框架内提供的种种基于其 ORM 的便利;理论上可以切换掉其 ORM 模块,但这就相当于要把装修完毕的房子拆除重新装修,倒不如一开始就去毛胚房做全新的装修。Django 的卖点是超高的开发效率,其性能扩展有限
三、安装
1、打开终端
2、过程
-
输入命令
pip install tornado
-
图解
-
验证
>>> import tornado >>> tornado.version '6.0.3'