【问题标题】:play 2.0 non-blocking model vs python tornado non-blocking modelplay 2.0 非阻塞模型 vs python tornado 非阻塞模型
【发布时间】:2013-01-26 22:27:33
【问题描述】:

以下讨论已经成功地说明了非阻塞网络服务器不会对传统网络应用程序有任何好处/更好。

What is the best way to run Django on Tornado Web Server to have async + django admin + django orm possibilities?

Django is not asynchronous, so running Django in Tornado will remove most of the performance benefits you might get from Tornado.

Play框架中存在nonblocking model,但它对Web服务器没有任何特殊要求(它给我的印象是任何tomcat或jetty都可以工作,不支持Tornado's非阻塞模型他们自己)。我的问题是:像 Tomcat 这样的传统 Web 服务器如何让 Play 这样的非阻塞 Web 框架受益?

【问题讨论】:

    标签: django web-applications playframework-2.0 jetty tornado


    【解决方案1】:

    HTTP 请求的异步服务(当一个线程可以服务多个 HTTP 请求时)is available 从 Servlet API 3 开始。Tomcat 7 和 Jetty 8 支持 Servlet API 3。

    在较旧的 servlet 2 容器上运行 Play/Akka 应用程序没有太多好处,因为请求不会在其整个生命周期内释放为其分配的线程。但是,即使在这种情况下,异步功能和 Akka Actor 也可以很方便地用于某些后台处理任务。

    Django 确实是非异步的。 Tornado 内部是异步的,即它允许在单线程中处理多个 TCP 连接,但是当tornado.wsgi 用于与 Django 互操作时,它会为请求分配一个线程,在其中调用 WSGI callable,并将这个线程分配给这个单线程请求它的整个生命周期。 WSGI 类似于 Servlet API 2。

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2013-11-12
      • 1970-01-01
      • 2021-08-28
      • 2012-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多