我订阅了 Google AppEngine 上的“Always On”选项。我不明白为什么 GAE 必须在已经打开“Always On”实例并且当时没有有大量请求时启动新实例。
这让我发疯,因为它使我通过 AlwaysOn 订阅获得的 yield 无效。任何想法如何解决此行为?因此我有延迟问题,我想通过使用 AlwaysOn 来消除它。我正在考虑取消订阅,因为它根本行不通。
最佳答案
AlwaysOn 所做的唯一一件事就是确保始终有某个实例来满足您的请求,即使您的应用程序已经长时间没有任何流量。至少据我所知,当涉及到 App Engine 用于确定是否需要新实例的缩放算法时,它没有发生任何变化。
不幸的是,关于 GAE 的这种行为的细节(即决定何时启动新实例)知之甚少。可能是您的应用程序最近有很多流量,昨天同一时间有很多流量,上周同一工作日同一时间有很多流量,等等。这些因素中的任何一个(很可能还有很多更多未知的)可能会影响 GAE 为您的应用程序委托(delegate)的实例数。
我可以理解您对延迟问题的提示,但根据我的经验,AlwaysOn 功能大大减少了延迟问题。然而,必须记住,低延迟不是作为服务的 GAE 的优先级 - 它是在不需要显式扩展的情况下持续处理巨大流量的能力。
关于java - AppEngine 在不需要它们的情况下启动新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5880511/