gpt4 book ai didi

python - 推荐使用 django 的扭曲网络

转载 作者:太空宇宙 更新时间:2023-11-03 15:12:07 25 4
gpt4 key购买 nike

我有一个 Django 应用程序,我需要将其部署在 WSGI 容器中。我可以选择像 TwistedWeb 这样的事件驱动的应用程序服务器,或者像 uWSGI 这样的过程驱动的服务器。我完全理解事件驱动和流程驱动服务器之间的区别,并且我知道 Django 框架本质上是阻塞的。

我遇到了 TwistedWeb,它可以让我们以简单的方式运行 WSGI 应用程序。

我的问题如下:

1) 我会通过运行 Twisted 而不是 uWSGI 获得任何好处吗,因为 Django 本质上是阻塞的。 TwistedWeb 与标准的扭曲库不同吗?我知道人们在需要异步支持时也使用 Django 运行 Twisted,为了聊天和正常功能,他们仍然希望只有一个应用程序。我没有这样的用例,对我来说它只是一个网站。

2) TwistedWeb 的性能是否会更差,因为它只是一个进程,而且我的请求会阻塞,因为 Django 本质上是同步的?或者 TwistedWeb 运行类似 uWSGI 的东西,它预先启动多个进程并在这些进程之间以循环方式分发请求?如果是,那么 TwistedWeb 比 uWSGI 好吗?

3) 除了 WSGI 之外,是否有任何其他协议(protocol)可以将 Twisted 与 Django 集成并且仍然给我异步行为(在这里试试我的运气 :))

最佳答案

您可以将每个问题作为一个单独的问题提出;任何时候你觉得需要列举一个列表,你都应该这样做。但是这里是:

  1. 是的,你会有所收获。通过在 Twisted 中托管您的 Django 应用程序,您可以访问 Twisted 主循环以及所有 Twisted API,您可以使用类似 Crochet 的方式轻松访问这些 API。 .您还消除了拥有单独网络服务器的开销,因为 Twisted 可以用作外部网络服务器和应用程序容器。
  2. 您的数据库和 Django 代码可能存在性能瓶颈。 Twisted 可能比 nginx 这样的东西稍微慢一些,例如,在直接提供您的静态内容时,但是您可以通过在 PyPy 下运行您的 twisted 服务器来使这种差异相当小。不过,您似乎在问并发性问题——比如“Twisted 的 WSGI 容器一次只运行一个 Django 请求吗?” - 答案是“否”。 Twisted 的 WSGI 容器是多线程的,将或多或少地按预期运行 Django 代码。
  3. 不清楚你在这里问什么,所以也许还是问另一个问题吧。

关于python - 推荐使用 django 的扭曲网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25176734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com