2

我们目前正在开发一个以性能为优先的异步 REST API。

最初,我们想部署 Node.js,因为它的事件驱动架构非常适合用例,但不幸的是,JavaScript 尚不支持 SCTP 套接字。

这导致我们使用 Python,经过一些考虑,我们决定使用 uWSGI 和 gevent。

但是,由于体系结构的性质,有两个领域的开销很大。

为了解决在内存中缓存数据的问题,我们使用了uWSGI缓存框架,它应该表现不错。

第二个问题是应用程序通过 SCTP 连接到后端处理程序。使用当前设置,将为每个请求建立和关闭此连接。每秒有数千个请求,它会留下很大的开销。

在理想情况下,我们希望永久建立套接字连接并为每个请求重复使用它。在 PHP 中,这可以通过持久的套接字连接来实现。Python / uWSGI 是否提供类似的功能?或者,我们可以使用 uWSGI 队列框架并成批处理请求。

欢迎任何建议。

4

1 回答 1

0

一旦你启用了 gevent 模式,uWSGI 就变成了纯粹的(并且纯粹意味着不需要猴子路径)事件驱动(否则使用 gevent 将没有任何优势)。Gevent 意味着事件驱动 + greenlet(避免你像在 node.js 中那样编写基于回调地狱的代码)

更多关于魔法的信息:http: //uwsgi-docs.readthedocs.org/en/latest/Async.html

WSGI 应用程序是,嗯,应用程序,所以如果你想拥有持久连接,只需在服务器启动或类似的东西上打开它,你不需要像 php.ini 那样的特殊支持。

于 2013-07-19T05:10:02.677 回答