我对预热请求的理解是请求“启动”一个新的前端/后端实例(或者它们只适用于前端?)准备在不久的将来某个时候使用。
我对加载请求的理解是它是一个启动新实例的请求,因为现在需要它。因此,自己应该尝试提前“预热”实例,以大大减少加载延迟。
所以我的第一个问题是:我对这些请求类型的理解是否正确,如果不正确(或者我遗漏了任何值得注意的地方),那么请首先澄清/纠正我!
接下来我很好奇:如何让 GAE 服务器端代码“处理”预热或加载请求?是否有我需要实现的特定接口(interface)(在 Java EE 领域,您也需要实现 ServiceContextListener
,web/app 容器在部署/启动应用程序时查找并调用它)。如果是这样,这样做的 API 是什么?否则,GAE 应用程序的“入口点”是什么?基本上我想知道什么类/方法应该处理预热/加载请求。
最后,我问:在处理预热请求和加载请求之间的启动过程中,哪些(一般) Activity 应该有所不同?他们不会一样吗?我之所以问,是因为我对使用 GAE 的“永远在线”高级功能很感兴趣,但不确定我应该将始终在线的实例的启动代码放在哪里。
最佳答案
预热请求是一种让实例准备好处理流量的方法,这样您的用户就不必等待 Java 或 Python 应用程序加载其所有导入,然后执行任何特定于实例的初始化(包括缓存变暖),它需要做的。预热请求适用于前端和后端。
你如何做的细节取决于语言,但基本上你需要一个处理程序来处理对 /_ah/warmup
的请求,它产生 500 响应之外的东西。有关详细信息,请谷歌“App engine warmup request”并选择适当的结果。默认情况下,Java 启用预热请求,但对于 Python,您必须在 app.yaml
中启用它们。我还没有为 Go 尝试过它们。
据我所知,“加载请求”只是实例必须处理的第一个请求的名称。 https://developers.google.com/appengine/kb/java#What_Is_A_Loading_Request有一些细节。
关于java - 谷歌应用引擎 : Warmup/Loading Requests and Always On,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13041360/