gevent+gunicorn可扩展性和稳定性是否适合生产使用?

2024-04-27 19:10:26 发布

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

我一直在研究python web服务器,它们提供可伸缩性,并决定使用Tornado(Facebook FriendFeed使用)或Gevent。因为我对这个还不太熟悉,所以我就依靠Benchmark of Python Web Servers来入围龙卷风和Gevent。此外,经过进一步研究,我发现:

  • Gevent不是独立的web服务器,我们需要使用libevent或gunicorn作为web服务器。
  • libevent有自己的pitfalls,比如不支持SSL、流、keep alive和websockets。
  • 没有可用的基准测试结果,我可以找到哪些文件的表现gevent和gunicorn一起使用。
  • gevent的作者自己建议每个人使用gevent + gunicorn进行实际部署。

我的要求:

  • 一个高度可伸缩的异步python web服务器。
  • 包括SSL支持。

我特别倾向于使用gevent,因为它基于greenlet的方法。 我只是想要一些确凿的事实来证明gunicorn+gevent是一个很好的选择,并且是高度可扩展的,与Tornado合作。或者还有其他符合我要求的python web服务器吗?

一定要把我指向正确的方向。


Tags: of服务器websslfacebook高度geventtornado
1条回答
网友
1楼 · 发布于 2024-04-27 19:10:26

在撰写本文时,Gunicorn已经进入了beta(0.16版),Gevent有一个1.0(Announcement on Google Groups)的候选发行版,因此可以合理地预期API中的更改(Gevent的更改较少),也就是说,只要跟踪邮件列表(这里是:gunicorngevent)中可能会破坏应用程序的更改,就应该生产部署没问题

Gunicorn+Gevent对于异步python web服务器来说是一个不错的选择。你应该做你自己的测试来和龙卷风做比较。公开可用的基准测试可能会产生误导,因为您的应用程序可能不会像那些受基准测试影响的应用程序那样工作。

对于SSL支持,GunicornTornado都建议您在反向代理(如nginx)后面运行它们。在反向代理后面运行它们的其他优点包括改进了对slow clients和坏HTTP请求的处理

相关问题 更多 >