Tornado剑谱02——安装配置

1.Tornado概述

随着Python技术的益发流行,在web开发领域也逐渐凸显出来python强大的开发优势和使用场景,各种基于python的web框架开始流行在各种类型的项目中。

其中尤其是传统的Django、Tornado、Bottle、Flask以及新型的sanic等各种框架的使用频次非常之高,这里就针对python web开发领域剑走偏锋的Tornado框架进行详细的解析和操作的指导。

1.1. 特点特性

Tornado框架主要是python实现的非阻塞式的web框架兼服务器,是web开发轻量级框架的代表。

|

在传统的web开发反向,服务器的处理性能一直都是有待突破的瓶颈,在tornado之前一直都有一个问题困扰着所有的程序员,当服务器的并发连接数量达到10000个连接时服务器的处理性能会急剧下降,服务器在很高的负载下会迅速消耗系统资源导致后续的结果不可预测,也就是传说中的C10K问题

Tornado另辟蹊径,利用系统底层内核操作模块epoll/kqueue的异步事件处理机制进行了该问题的处理,在一定程度上突破了C10K问题带来的困扰,也成为了tornado框架被大家广泛使用的一个原因。

|

首先,Tornado本身是一个底层通过非阻塞式IO实现的、底层处理方式是基于linux epoll/BSD kqueue内核事件处理机制实现的高性能并发处理的web服务器

其次,Tornado是一个高效快速开发高性能高并发web应用程序的web开发框架

第三,Tornado主要适用于需要处理大量异步操作的web项目中,更能发挥出框架本身处理机制带来的性能福利

1.2. 使用优势

平行对比之下,Tornado由于其底层使用epoll/kqueue事件处理方式及非阻塞式的服务操作,在处理web项目中常规的大量的异步请求的情况下,性能远远高于Django、Flask、Bottle这样的框架

尽管不同的框架其处理性能有一定的差异,但是我们实际项目开发过程中,重要的不只是性能的判断,更多的综合因素都需要考虑,如开发技术成本和技术风险、开发效率、维护成本等等,所以要根据实际需求的应用场景进行web框架的选型

Tornado框架本身的使用优势在于其高性能的并发处理和异步处理上,但是必须要运行在****linux/unix****内核操作系统上才能发挥其巨大的优势,同时Tornado web项目开发和其他框架如Django不同的是,开发过程需要自己从头开始搭建(当然如果你已经是web开发老鸟的话,将自己开发的模块化模型构建好,通过一条命令直接构建也是可以的,如果这样的话你也不同看这篇文档了),框架中不提供数据模型和数据库交互的ORM层的实现,需要自己独立开发进行操作。如果满足上述需要的话,选择Tornado,你不会留下遗憾!否则,请根据如下需要选择框架进行操作,请自觉站队:

l 效率型:Django Framework

l 成本型:Flask Framework

l 追新型:Sanic Framework

l 怀旧型:WebPy Framework/Bottle Framework

l 性能型:Tornado Framework/Sanic Framework

1.3. 架构模式

随着web框架技术定位和软件开发流程的发展,Tornado更加追求少而精的开发方向,将更多的功能流程的定义还给开发人员进行处理,框架本身只对项目处理性能进行高度的优化操作,成就了Tornado框架作为轻量级框架的典型架构代表:

|

image.png

| |

Tornado工作于应用层,其本身主要通过四个部分组成:

  1. Web框架
  2. HTTP服务端 + 客户端
  3. 异步网络库
  4. 协程库

|

Tornado框架只负责应用层的管理配置和开发定义,极大的简化框架对流程的高度封装带来的限制(封装底层处理流程造成的流程定义僵化,高度封装造成的BUG维护难度升级)

将更多的开发自由度交由开发人员进行操作,由此实现了性能+框架+高效+定制的统一。

2.安装配置

2.1. 官方网站

http://www.tornadoweb.org/en/stable/

tornado的官方网站,就是tornado的官方文档,官方文档通过模块化组件化的方式整理了tornado框架的细节操作,让文档更加趋于API接口说明文档,但是又不全是说明文档,如果对于技术类型的文档了解不多的话,对Tornado官方提供的文档很难下嘴!

http://tornado-zh.readthedocs.io/zh/latest/

技术人员提供的tornado官方文档的中文版本,建议大家对于tornado有了一定的了解并且拥有能开发项目的基本能力之后,就可以查看对应的官方文档解决项目中遇到的细节问题了,如果是入门新手,不推荐从官方文档入手

http://demo.pythoner.com/itt2zh/

说到入门新手,introduce to tornado这本书无疑是最好的首选,上述链接是该书的中文翻译版本,对于新手入门是完全足够了。如果工作中需要用到tornado技术的话,祝你好运了

2.2. 安装方式

(1) 手工安装

从以下网站,下载tornado压缩包

https://github.com/tornadoweb/tornado/releases

根据不同的操作系统下载不同的压缩包

|

image.png

|

解压压缩包,通过如下命令进行安装

# 进入解压后的目录

cd tornado-5.0.2

# 编译构建目标文件

python setup.py build

# 执行安装命令

python setup.py install

(2) 自动安装

相对于手工安装方式,相信大家都更加喜欢自动安装方式,tornado作为一个python模块,通过常规模块安装的方式可以直接安装

通过执行如下命令进行安装,安装过程中可能会出现Read time out,是因为网络超时断开了下载,重新执行安装,直到出现successfully installed tornado的提示即可!

# 默认安装最新版

pip install tornado
# 安装指定版本

pip install tornado==5.0.2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏携程技术中心

开源 | 携程Redis多数据中心解决方案-XPipe

作者简介 孟文超,携程技术中心框架研发部高级经理。2016年加入携程,目前主要负责Redis多数据中心项目XPipe。此前曾在大众点评工作,任基础架构部门通信团...

58810
来自专栏程序你好

微服务:如何拆分共享数据库?

在分解单体应用程序到微服务体系架构时,重点考虑独立数据库拆分是很重要的。您需要想出一个可靠的策略,将您的数据库分割为多个与应用程序对齐的小型数据库。简而言之,您...

1781
来自专栏腾讯云商业智能分析团队的专栏

创建数据集模块常见设置

创建数据集的主要功能是从数据库查询出所需的数据,从而进行数据分析。在创建数据集处,可以对数据进行一些简单的处理,如数据级别的权限设置,字段信息修改,字段管理等。

1851
来自专栏pangguoming

mysql分布式数据库中间件对比

目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。

2981
来自专栏L宝宝聊IT

esxi存储(外部共享存储)

33310
来自专栏企鹅号快讯

周集:好用的工具和网站

上次提到的软件下载的页面已经写完了,接下来就是往页面中丰富内容,我会放一些自己用过的比较好用的软件工具,下载地址,有官方网站的我会放上官方网站的地址,没有的话,...

2279
来自专栏测试开发架构之路

APP测试点总结

1.功能性测试:   ——根据产品需求文档编写测试用例。   ——软件设计文档编写用例。   注意:就是根据产品需求文档编写测试用例而进行测试。 2.兼容性测试...

4997
来自专栏蓝天

成功的 Web 应用系统性能测试

基于Web服务器的应用系统由于提供浏览器界面而无须安装,大大降低了系统部署和升级成本,得以普遍应用。目前,很多企业的核心业务系统均是Web应用,但当Web应用的...

2044
来自专栏知晓程序

想第一时间发布小程序?人人都得这样做 | 小程序接入指南

1874
来自专栏草根专栏

Python数据分析(二): Numpy技巧 (4/4)

numpy、pandas、matplotlib(+seaborn)是python数据分析/机器学习的基本工具。 numpy的内容特别丰富,我这里只能介绍一下比较...

3219

扫码关注云+社区

领取腾讯云代金券