話說剛開始學習真的超不順,中文英文的教學都很少,官方的文件又寫的很簡略...但看著看著,突然有一天感覺就來了,就像任督二脈被打通般的,我看得懂了,我會使用了,程式寫這麼久了,我覺得對我幫助最大就是學會這種感覺。如果看懂Overview又學會使用Source code裡面的demo程式,對Tornado的掌握度就很高了!
API
Tornado真是個強大的東西,它陳列的API不多,但每一個都是在建立平台時很常見的需求:
- OAuth第三方認證 - 使用facebook、google、twitter帳號來登入自己的網站,API都很精簡了
- Python decorator tornado.web.authenticated - Sorry我不知道怎麼翻譯這個,簡單來說就是user尚未通過認證,存取到任何網頁都會被導回login頁面
- Non-blocking, asynchronous http request - facebook graph API query、backend server query
- Template - MVC架構開發,這是每個framewrok都必備的
- Security cookie - 防止cookie被篡改
- L10N, CSRF protect
IDE選擇
- Eclipse + pyDev + HTMLEditor
效能
Tornado底層採用 epoll (事件驅動),IO速度相當快。由於是single thread,所以在程式中不能做一些卡CPU太久的事情(while loop, sleep),有需要存取IO (DB, memcached) 一定要用非同步。Single thread下一支Tornado只能使用一個CPU core,對此官網上指明了用Nginx來做reverse proxy,後端運行多個tornado web server,橫向擴充性佳!
提供一些別人的Benchmark
- 纯python实现的web: tornado性能测试 - Nginx + 4 Tornado: 7000 req/s
- Benchmarking Tornado's sessions - 1 Tornado + session in memcached: 1400 req/s
- nginx vs Tornado Web vs Apache Performance Benchmark - 1 Tornado: 2000 req/s
以下是一些未整理中文參考
- Tornado官方Overview中文說明 - 對英文有障礙的可以看這個
- Tornado: 2. 源码分析 (1) - Q.yuhen
- Tornado: 2. 源码分析 (2) - Q.yuhen
- Tornado: 2. 源码分析 (3) - Q.yuhen
- Tornado: 3. 模板分析 - Q.yuhen
- python学习笔记 - logging@tornado学习记录一 - joy2everyone - ITeye技术网站
- python学习笔记 - template@tornado 学习记录一 - joy2everyone - ITeye技术网站
- python学习笔记 - secure cookie@tornado 学习记录一 - joy2everyone - ITeye技术网站
需要Session support可以參考:
- A fork of Tornado with session support - Patch過的Tornado,支援memcached及多款DB可存放session
- 玩蛇记-给tornado加上session支持
- 玩蛇记-给tornado加入Session之可跨主域-跨应用的Server Farm原理篇
Tornado的強項就是處理long polling
沒有留言:
張貼留言