Google App Engine – 通过实例自动缩放

使用GAE进行全新应用程序最令人恼火的事情之一就是,如果在15分钟内没有人碰到你的服务器,就不得不处理被激发的事件。 由于该应用程序是新的,或者只有很less的用户,所以对于一些不知道实例正在“旋转”的用户来说,

据我所知,你有这些基于文档的选项:

使用manual-scaling并将实例数设置为1

当你使用manual-scaling ,你设置的任何数量的实例都是你将会拥有的 – 不多不less。 这显然是低效的,因为您可能会支付未使用的实例,并且实例不会随着stream量增加/减less而自动添加/删除

使用basic-scaling和设置idle-timeout如24小时或48小时。

只要有人在这段时间内至less查询一次您的API,就会使您的实例继续运行。

min-idle-instances和启用预热请求时使用automatic-scaling

这不符合预期的。 根据这些文件 :

如果您的应用程序没有提供任何stream量,那么对应用程序的第一个请求将始终是加载请求,而不是热身请求。

这并不能解决我们的问题,因为如果零实例正在运行,那么首先就没有什么可以预热的。 因此,您仍然在第一个请求上得到延迟。


我希望得到的效果是总是有一个实例运行,然后从那里扩大,如果stream量增加(当然,减less,但从来没有低于一个实例)。 这将像自动缩放,但有1个实例始终运行。

GAE有可能吗? 还是我错过了什么?

现在,我的临时解决scheme是设置我的应用程序manual-scaling与1个实例,所以至less我的应用程序是可用的新用户。

Solutions Collecting From Web of "Google App Engine – 通过实例自动缩放"

我尝试过的一个解决scheme是使用自动缩放,并发出一个cron作业,每5分钟执行一次servlet中的任何公共静态api方法(它可以只取零参数并返回null)。

请参阅此处了解如何设置: https : //cloud.google.com/appengine/docs/java/config/cron#creating_a_cron_job

这给你28个免费的实例小时比使用手动缩放8小时:) woot woot的好处