一.概述
Tornado是用python写的异步web架构库,几行代码就可以写出httpsever和WebSocket server,它是采用python构建 web服务的几种流行的架构之一。
关于Tornado与Django的区别,网文很多,不再描述,笔者选择Tornado而不是Django的主要原因同样是Django包揽太多,灵活度小,而Tornado比较适合中小性网站(不是从性能上讲),这是笔者应用的领域。
本文不是对tornado的系统说明和介绍,而仅是对其关键点的一些解释和笔者的看法,本文的解释大多来自tornado官网http://www.tornadoweb.org/en/stable/index.html,特此说明。
二.环境部署
Tornado的安装比较简单,它是纯python代码,联网安装可用pipinstall tornado完成,或源码下载后,运行python setup.py install完成。
本文的示例在ubunt17.10+python3.6.3下完成。
虽然Tornado是异步web架构,但其缺省的运行方式是单进程单线程,如果处理流程中有一个环节是阻塞的,则整个处理流程的效率就大打折扣了,而文件操作、数据库操作多是同步的(或异步操作难于编写和调试),因此笔者认为多进程的运行方式是Tornado的主要方式。
将Tornado web server多进程运行,可以利用Nginx作代理