Python Tornado核心及相關(guān)原理詳解
Tornado的核心是什么?Tornado 的核心是 ioloop 和 iostream 這兩個(gè)模塊,前者提供了 一個(gè)高效的 I/O 事件循環(huán),后者則封裝了 一個(gè)無(wú)阻塞的 socket 。 通過(guò)向 ioloop 中添加網(wǎng)絡(luò) I/O 事件,利用無(wú)阻塞的 socket ,再搭配相應(yīng)的回調(diào)函數(shù),便可達(dá)到夢(mèng)寐以求的高效異步執(zhí)行。
一、Tornado簡(jiǎn)介
Tornado全稱Tornado Web Server,是一個(gè)用Python語(yǔ)言寫成的Web服務(wù)器兼Web應(yīng)用框架,由FriendFeed公司在自己的網(wǎng)站FriendFeed中使用,被Facebook收購(gòu)以后框架在2009年9月以開源軟件形式開放給大眾。
二、Tornado特點(diǎn):
作為Web框架,是一個(gè)輕量級(jí)的Web框架,其擁有異步非阻塞IO的處理方式。
作為Web服務(wù)器,Tornado有較為出色的抗負(fù)載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應(yīng)用框架進(jìn)行對(duì)比,結(jié)果最大瀏覽量超過(guò)第二名近40%。
三、Tornado性能:
Tornado有著優(yōu)異的性能。它試圖解決C10k問(wèn)題,即處理大于或等于一萬(wàn)的并發(fā)。
Tornado框架和服務(wù)器一起組成一個(gè)WSGI的全棧替代品。單獨(dú)在WSGI容器中使用tornado網(wǎng)絡(luò)框架或者tornaod http服務(wù)器,有一定的局限性,為了最大化的利用tornado的性能,推薦同時(shí)使用tornaod的網(wǎng)絡(luò)框架和HTTP服務(wù)器。
四、應(yīng)用場(chǎng)景
1,用戶量大,高并發(fā)
如秒殺搶購(gòu)、雙十一某寶購(gòu)物、春節(jié)搶火車票
2,大量的HTTP持久連接
使用同一個(gè)TCP連接來(lái)發(fā)送和接收多個(gè)HTTP請(qǐng)求/應(yīng)答,而不是為每一個(gè)新的請(qǐng)求/應(yīng)答打開新的連接的方法。
對(duì)于HTTP 1.0,可以在請(qǐng)求的包頭(Header)中添加Connection: Keep-Alive。
四、Tornado開發(fā)方向:
Tornado走的是少而精的方向,注重的是性能優(yōu)越,它最出名的是異步非阻塞的設(shè)計(jì)方式。
- HTTP服務(wù)器
- 異步編程
- WebSockets
五、tornado的基礎(chǔ)web框架模塊
RequestHandler
封裝了對(duì)應(yīng)一個(gè)請(qǐng)求的所有信息和方法,write(響應(yīng)信息)就是寫響應(yīng)信息的一個(gè)方法;對(duì)應(yīng)每一種http請(qǐng)求方式(get、post等),把對(duì)應(yīng)的處理邏輯寫進(jìn)同名的成員方法中(如對(duì)應(yīng)get請(qǐng)求方式,就將對(duì)應(yīng)的處理邏輯寫在get()方法中),當(dāng)沒(méi)有對(duì)應(yīng)請(qǐng)求方式的成員方法時(shí),會(huì)返回“405: Method Not Allowed”錯(cuò)誤。
Application
Tornado Web框架的核心應(yīng)用類,是與服務(wù)器對(duì)接的接口,里面保存了路由信息表,其初始化接收的第一個(gè)參數(shù)就是一個(gè)路由信息映射元組的列表;其listen(端口)方法用來(lái)創(chuàng)建一個(gè)http服務(wù)器實(shí)例,并綁定到給定端口
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python中的斷言(assert語(yǔ)句)
- Python+Selenium+Pytesseract實(shí)現(xiàn)圖片驗(yàn)證碼識(shí)別
- python assert斷言的實(shí)例用法
- Python中優(yōu)雅使用assert斷言的方法實(shí)例
- Python實(shí)現(xiàn)OCR識(shí)別之pytesseract案例詳解
- python pytesseract庫(kù)的實(shí)例用法
- 解決Python3.8運(yùn)行tornado項(xiàng)目報(bào)NotImplementedError錯(cuò)誤
- Python Tornado之跨域請(qǐng)求與Options請(qǐng)求方式
- Python Tornado 實(shí)現(xiàn)SSE服務(wù)端主動(dòng)推送方案
相關(guān)文章
Python采集二手車數(shù)據(jù)的超詳細(xì)講解
這篇文章主要為大家介紹了Python采集二手車數(shù)據(jù)實(shí)現(xiàn)的超詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能示例
這篇文章主要介紹了Python下實(shí)現(xiàn)的RSA加密/解密及簽名/驗(yàn)證功能,結(jié)合具體實(shí)例形式分析了Python中RSA加密、解密的實(shí)現(xiàn)方法及簽名、驗(yàn)證功能的使用技巧,需要的朋友可以參考下2017-07-07教你用 Python 實(shí)現(xiàn)微信跳一跳(Mac+iOS版)
這幾天看網(wǎng)上好多微信跳一跳破解了,不過(guò)都是安卓的,無(wú)奈蘋果不是開源也沒(méi)辦法。本文給大家分享用 Python 來(lái)玩微信跳一跳(Mac+iOS版),具體實(shí)現(xiàn)代碼大家參考下本文2018-01-01

Django?+?Taro?前后端分離項(xiàng)目實(shí)現(xiàn)企業(yè)微信登錄功能

python函數(shù)與方法的區(qū)別總結(jié)

Python中JSON數(shù)據(jù)的相互轉(zhuǎn)化詳解
JSON 本質(zhì)是一個(gè)帶有特定格式的字符串,需要的朋友可以參考下

Python Django請(qǐng)求和響應(yīng)對(duì)象詳解