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

3
我正在使用Google App Engine标准环境开发一个微服务架构的Flask应用程序。该应用程序需要承受突发的高强度流量,因此似乎非常适合标准环境。我的问题是:
在其他我使用过的环境中(如Heroku、App Engine Flexible),你必须配置Flask应用程序使用生产质量的WSGI Web服务器,例如gunicorn,因为内置的Flask服务器仅适用于开发。关于灵活环境有相关文档,但标准环境没有。我是否正确地认为这是因为标准环境(如app.yaml中配置的)以一种适合生产的方式管理请求处理和gunicorn执行的所有其他事项?难道真的这么简单吗?
1个回答

5

没错,这真的很简单。作为PaaS,GAE会替你处理所有事务,就像SnapChat在增长到1.5亿用户时所做的一样(是的,它托管在GAE上)。

观看 "App Engine Architecture and Services" 和 "You Can Run That On App Engine?"。这些视频描述了一些相关内容。传入请求首先被捕获在GAE前端服务器的队列中。然后决定对其进行何种处理。如果你的应用程序实例没有运行,则启动一个实例并将请求传递给它。如果实例正在运行且不太繁忙,则立即将请求传递给它。如果所有运行的实例都很忙,则将保留请求,直到有实例能够接受另一个请求。如果请求在前端队列中等待时间过长(基于您可以设置的参数),GAE将启动更多实例来处理积压。

使用GAE,你的应用程序现在运行在具有负载均衡器、前端请求排队服务器、边缘服务器、自动扩展应用程序服务器、私有全球光纤网络等环境中。这意味着所有“生产质量”方面的担忧,例如在自行设计的服务器上使用gunicorn等工具,都已由Google聪明的GAE工程师处理。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接