【发布时间】:2011-10-21 21:15:18
【问题描述】:
我想尝试使用 gevent 作为 Web 服务器和应用程序框架。我没有看到任何方法可以“重新启动”服务器或更新应用程序代码而不杀死并再次启动整个 python 应用程序。
这就是它的做法吗?也许这只是我理解与 apache 方式不同的范式的问题。
另外,作为一个半相关的问题,通过 gevent 运行 Web 服务器和站点/服务本身是否是一个好主意。我已经看到其他使用 gunicorn 作为服务器和 gevent 作为应用程序的实现,但从我看到的基准测试来看,gevent 作为服务器在扩展方面的性能远远优于 gunicorn。
【问题讨论】:
-
如果您想直接运行 gevent 但即使在升级期间也保持服务器可用,一个解决方案是在两个 gevent 实例前面放置一个负载均衡器。 Nginx 可以简单地通过在上游定义中拥有两个服务器来充当负载均衡器。通过一次重新启动一个 gevent wsgi 服务器,您不会有停机时间。但是,与运行 gunicorn 相比,内存占用的小优势从长远来看并不值得,因为它增加了复杂性,恕我直言。
-
@DanielEriksson 好建议。