Python面試題 Tornado的核心是什么?


Tornado的核心是什么?Tornado 的核心是 ioloop 和 iostream 這兩個模塊,前者提供了 一個高效的 I/O 事件循環,后者則封裝了 一個無阻塞的 socket 。 通過向 ioloop 中添加網絡 I/O 事件,利用無阻塞的 socket ,再搭配相應的回調函數,便可達到夢寐以求的高效異步執行。

一、Tornado簡介


  Tornado全稱Tornado Web Server,是一個用Python語言寫成的Web服務器兼Web應用框架,由FriendFeed公司在自己的網站FriendFeed中使用,被Facebook收購以后框架在2009年9月以開源軟件形式開放給大眾。


二、Tornado特點:


  作為Web框架,是一個輕量級的Web框架,其擁有異步非阻塞IO的處理方式。

  作為Web服務器,Tornado有較為出色的抗負載能力,官方用nginx反向代理的方式部署Tornado和其它Python web應用框架進行對比,結果最大瀏覽量超過第二名近40%。


三、Tornado性能:


  Tornado有着優異的性能。它試圖解決C10k問題,即處理大於或等於一萬的並發。


  Tornado框架和服務器一起組成一個WSGI的全棧替代品。單獨在WSGI容器中使用tornado網絡框架或者tornaod http服務器,有一定的局限性,為了最大化的利用tornado的性能,推薦同時使用tornaod的網絡框架和HTTP服務器。


四、應用場景


  1,用戶量大,高並發


  如秒殺搶購、雙十一某寶購物、春節搶火車票


  2,大量的HTTP持久連接


  使用同一個TCP連接來發送和接收多個HTTP請求/應答,而不是為每一個新的請求/應答打開新的連接的方法。


  對於HTTP 1.0,可以在請求的包頭(Header)中添加Connection: Keep-Alive。


四、Tornado開發方向:


  Tornado走的是少而精的方向,注重的是性能優越,它最出名的是異步非阻塞的設計方式。


  HTTP服務器


  異步編程


  WebSockets


五、tornado的基礎web框架模塊


  RequestHandler


  封裝了對應一個請求的所有信息和方法,write(響應信息)就是寫響應信息的一個方法;對應每一種http請求方式(get、post等),把對應的處理邏輯寫進同名的成員方法中(如對應get請求方式,就將對應的處理邏輯寫在get()方法中),當沒有對應請求方式的成員方法時,會返回“405: Method Not Allowed”錯誤。


  Application


  Tornado Web框架的核心應用類,是與服務器對接的接口,里面保存了路由信息表,其初始化接收的第一個參數就是一個路由信息映射元組的列表;其listen(端口)方法用來創建一個http服務器實例,並綁定到給定端口


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM