Tornado初始一

tornado框架

1. Python的三大web框架
- django,大而全框架。
- flask,轻量级框架(可扩展强)。
- tornado,异步非阻塞框架。
2. tornado特点:
- 自带socket,可以不用wsgi。(如果用了其他wsgi那么异步非阻塞的功能就没有了)
- 原生支持 websocket 协议
- 组件支持的少:
- 支持:路由、视图、模板渲染、cookie
- 不支持:无session、orm、form、admin.....
3. 行业现状
- 瞎用:
- 真用:生成器+装饰器+Future对象
- 使用tornado框架不要使用pymasql去连接数据库,不然体现不出tornado 异步非阻塞的特性,它有特殊的模块去连接数据库

4. 异步非阻塞适用场景:
- 如果服务端做的计算操作耗时导致 并发能力低,tornado无能为力。
- 如果服务端自己接收到请求后,但是要向别的应用发送(网络请求)IO请求,这种情况下 导致并发能力低,用tornado能实现性能提升。

  其实这种性能的提升看似是tornado实现了多个并发操作,其实不是这样,根本原因是当多个IO请求到来时,tornado先获取到那个IO请求,就把请求发送到别的应用服务器,当下一个IO请求到来时,不用阻塞等待,它也立刻把请求发送到那个应用服务器,这样就感觉tornado在同一时间处理多个并发请求,效率就大大提升!比如3个IO请求到来,如果每一个 IO请求解析需要2秒钟,如果在2秒钟内能把请求都拿到,并且发送给了别的应用服务器,该应用服务器在2秒内完成解析,立即返回给tornado,这样整个操作就能提高效率,而Django和flask就需要一个一个IO的等待,6秒钟的时间处理操作。(单线程)
原文地址:https://www.cnblogs.com/DJRemix/p/10044335.html