java - 谷歌应用引擎 : Warmup/Loading Requests and Always On

标签 java google-app-engine

我对预热请求的理解是请求“启动”一个新的前端/后端实例(或者它们只适用于前端?)准备在不久的将来某个时候使用。

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

所以我的第一个问题是:我对这些请求类型的理解是否正确,如果不正确(或者我遗漏了任何值得注意的地方),那么请首先澄清/纠正我!

接下来我很好奇:如何让 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/

相关文章:

java - 什么是最好的 "fresh"android 开发书籍

java - 尝试从 Eclipse 运行 AppEngine Cloud SQL 应用程序时出现访问被拒绝错误

java - 此 API 不支持解析表单编码的输入

python - 尝试启动 Google App Engine,出现与 python 相关的错误

java - 如何在单元测试中用内容数据模拟页面?

java - 使用 SOAP 响应始终为 null Spring Boot

java - 在 Jetty6 中优先使用强密码 [JAVA]

java - 通用类 - getClass().getName()

java - 如何摆脱 java.lang.RuntimeException : Unable to locate the App Engine agent in Eclipse Helios?

python - Google App Engine Python simplejson 转义?