第1个回答 2018-07-06
iendFeed开发Tornado的原因-----因为FriendFeed需要实时更新Timeline,而Comet又是目前最好,最流行的方法。由于知乎也有大量长轮询连接需要维护,
所以选择Tornado也就在情理之中了。
Tornado不是万金油,由于Tornado的WEB服务器为单线程,
一个Request如果阻塞了I/O,那么这个进程将一直挂起,既无法接受新的Request,
也无法Finish正在阻塞的其它Request。虽然可以Spawn多个Tornado进程,但是进程这种重量级的东西,Spawn太多会消耗大量的内存资源。这种感觉很像PHP的FastCGI进程那种味道。
所以如果是会阻塞I/O的Request一般都是利用Tornado内置的异步HTTP Client
第2个回答 2018-07-30
Tornado不仅仅是Web框架,它实现了异步非阻塞的I/O模型。这个特性的优势体现在对大量Comet长轮询连接的维护上。这也是FriendFeed开发Tornado的原因-----因为FriendFeed需要实时更新Timeline,而Comet又是目前最好,最流行的方法。由于知乎在开发
第3个回答 2018-07-06
Tornado异步非阻塞的I/O模型的确让人耳目一新,Tornado的优势主要在于对大量Comet长轮询连接的维护上。这也是FriendFeed开发Tornado的原因-----因为FriendFeed需要实时更新Timeline,而Comet又是目前最好,最流行的方法。由于知乎也有大量长轮询连接需要维护,所以选择Tornado也就在情理之中了。