Java 谷歌应用引擎:预热/加载请求并始终打开

Java 谷歌应用引擎:预热/加载请求并始终打开,java,google-app-engine,Java,Google App Engine,我对预热请求的理解是,它是一个请求,用于“初始化”一个新的前端/后端实例(或它们是否仅适用于前端?),以准备在不久的将来的某个时候使用 我对加载请求的理解是,它是一个启动新实例的请求,因为现在需要它。因此,它应该尝试提前“预热”实例,以减少加载延迟 因此,我的第一个问题是:我对这些请求类型的理解正确吗?如果不正确(或者如果我遗漏了任何值得注意的内容),那么请从澄清/纠正我开始 接下来我很好奇:如何让GAE服务器端代码“处理”预热或加载请求?是否有我需要实现的特定接口(在JavaEE中,您也需要实

我对预热请求的理解是,它是一个请求,用于“初始化”一个新的前端/后端实例(或它们是否仅适用于前端?),以准备在不久的将来的某个时候使用

我对加载请求的理解是,它是一个启动新实例的请求,因为现在需要它。因此,它应该尝试提前“预热”实例,以减少加载延迟

因此,我的第一个问题是:我对这些请求类型的理解正确吗?如果不正确(或者如果我遗漏了任何值得注意的内容),那么请从澄清/纠正我开始

接下来我很好奇:如何让GAE服务器端代码“处理”预热或加载请求?是否有我需要实现的特定接口(在JavaEE中,您也需要实现
ServiceContextListener
,web/app容器在部署/启动应用程序时会查找并调用该接口)。如果是,那么API是如何实现的?否则,GAE应用程序的“入口点”是什么?基本上我想知道什么类/方法应该处理预热/加载请求


最后,我要问:在启动过程中,处理预热请求和加载请求之间应该有哪些(一般)活动不同?他们不是一样吗?我这么问是因为我对使用GAE的“始终在线”高级功能感兴趣,并且不确定我应该将始终打开的实例的启动代码放在哪里。

预热请求是一种让实例准备好处理流量的方法,这样用户就不必等待Java或Python应用程序加载其所有导入,然后执行任何特定于实例的初始化(包括缓存预热)它需要这样做。预热请求适用于前端和后端

具体操作方法取决于语言,但基本上您需要一个处理程序来处理产生500响应以外的请求。有关详细信息,请使用谷歌搜索“应用程序引擎预热请求”,并选择适当的结果。Java默认启用预热请求,但Python必须在
app.yaml
中启用它们。我还没试过


据我所知,“加载请求”只是实例必须处理的第一个请求的名称。有一些细节。

让我们想象一下,AppEngine应该提供一个请求,但此时所有实例都被利用,然后应用引擎将决定旋转一个新实例,在这种情况下,应用引擎是否会向新实例发送预热请求,这意味着请求仍在等待,我认为情况并非如此,或者应用引擎预测未来,并假设一个新实例应该旋转,因此它旋转一个新实例并向其发送一个预热请求,当一个新请求出现时,没有实例为其提供服务,则应用引擎将此请求发送给已经预热的实例?我已经看过几年了。在某一点上(使用AppEngine“经典”)总是有一个热身请求。应该很容易验证。