uWSGI&gevent持久网络套接字连接

2024-09-28 21:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我们目前正在开发一个性能优先的异步restapi。在

最初,我们想部署节点.js由于它的事件驱动体系结构,它可以很好地适应用例,但是不幸的是,JavaScript还不支持SCTP套接字。在

这将我们引向Python,经过一些考虑,我们决定使用uWSGI&gevent。在

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

为了解决在内存中缓存数据的问题,我们使用了uWSGI缓存框架,该框架应该性能良好。在

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

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

欢迎提出任何建议。在


Tags: 内存框架restapi区域节点体系结构部署js
1条回答
网友
1楼 · 发布于 2024-09-28 21:24:10

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

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

WSGI应用程序是,好吧,是应用程序,所以如果你想有持久的连接,只要在服务器启动或类似的时候打开它,你不需要像php那样的特殊支持。在

相关问题 更多 >