【发布时间】:2012-06-08 04:20:54
【问题描述】:
我一直无法让它正常工作,这太令人不安了:我已经配置了预热请求,但我从来没有看到它们通过,所以大约 10% 的请求会导致一个新实例被启动并请求接受30 秒或更长时间。而且由于持续的放缓,有时这些旋转需要比平时更长的时间并且会超时,这太可怕了。这是一个 spring 应用程序,启动速度非常慢,我可能会优化到不到 30 秒,但除此之外......我需要预热请求才能工作,因此实例在它们之前不会服务用户请求真的准备好了。
有人说,除非您有常驻实例,否则预热请求不起作用,这是有道理的,所以我注册了 336 小时/周的折扣实例小时,但一个小时后我仍然看不到创建任何预留实例。即使我杀死了所有动态的,也会创建新的动态。
所以我的具体问题是:我需要做任何其他事情来设置保留实例吗?一旦这些都启动了,这会打开预热请求吗?
我的应用设置:
空闲实例:自动自动
待处理延迟:5s-10s
已配置服务:预热请求
appengine-web.xml:
<warmup-requests-enabled>true</warmup-requests-enabled>
<threadsafe>true</threadsafe>
web.xml:
<servlet>
<servlet-name>_ah_warmup</servlet-name>
<servlet-class>com.google.apphosting.utils.servlet.WarmupServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>_ah_warmup</servlet-name>
<url-pattern>/_ah/warmup</url-pattern>
</servlet-mapping>
我的主要 Spring Dispatcher servlet 和 appstats servlet 也有:
<load-on-startup>1</load-on-startup>
【问题讨论】:
-
我认为您在这里混淆了 3 个不同(且独立)的概念:预热服务、常驻实例和折扣实例/小时
-
我也有同样的问题。与您的配置唯一不同的是没有您粘贴的 web.xml 片段。我认为在 appengine-web.xml “
true ”中启用就足够了。无论如何,我的结果和你说的一样.. -
@alex 是的,我很害怕,但我找不到任何关于常驻实例的文档,而热身对常驻实例的依赖只是我在一些帖子中读到的内容。你能添加答案并帮助我解开吗?谢谢。
-
没关系,想通了,我会发布答案