Google App Engine标准环境中的gunicorn服务器

时间:2017-10-17 23:15:14

标签: python google-app-engine gunicorn

我在Google App Engine的标准环境中开发了一个带有微服务架构的Flask应用程序。这个应用程序将需要持续激烈的流量,所以它似乎是Standard Environment的完美。我的问题是:

在我使用的其他环境(Heroku,App Engine Flexible)中,您必须配置Flask应用程序以使用像gunicorn这样的生产质量的WSGI Web服务器,因为内置的Flask服务器仅适用于开发。灵活环境有关于此的文档,但不适用于标准。我是否正确认为这是因为标准环境(在app.yaml中配置)管理请求处理以及gunicorn将以生产准备方式进行的所有其他操作?它真的那么容易吗?

1 个答案:

答案 0 :(得分:2)

是的,真的很容易。作为PaaS,GAE会为您完成所有这些工作。就像SnapChat一样,当它增长到1.5亿用户时(是的,托管在GAE上)。

观看“App Engine Architecture and Services”和“You Can Run That On App Engine?”。这些描述了一些。首先在GAE前端服务器的队列中捕获传入请求。从那里它决定如何处理它。如果您的应用程序实例未运行,则会启动一个实例,然后将请求传递给它。如果实例正在运行且不太忙,它会立即将请求传递给它。如果所有正在运行的实例都忙,它将保留请求,直到实例能够接受另一个请求。如果请求在前端队列中停留的时间太长(基于您可以设置的参数),GAE将启动更多实例来处理积压。

使用GAE,您的应用程序现在可以在具有负载平衡器,前端请求排队服务器,边缘服务器,自动扩展应用服务器,专用全球光纤网络等的环境中运行。这意味着所有“生产质量”在自我设计的服务器上引发你的枪支等问题,不仅仅是谷歌智能工程师在GAE中的处理。

由于您正在寻找微服务,您可能还想阅读GAE文档中的Microservices Architecture on Google App Engine