每当我使用app_cfg.py部署我的项目时,我们的项目返回404未找到错误的时间为3-4秒。我认为可以通过启动和运行多台机器来避免这种情况。在云控制台中,它只显示一个一直运行的实例,即使我将min_idle_instances设置为三个。
如何在部署期间避免404服务器?
以下是app.yaml文件的一部分
instance_class: F4
automatic_scaling:
min_idle_instances: 3
max_idle_instances: 6
min_pending_latency: 30ms # default value
max_pending_latency: automatic
max_concurrent_requests: 40
答案 0 :(得分:3)
我看到了两种可能的解释:
如果您正在部署与已经拥有流量的服务/应用版本相同的服务/应用版本:您实际上正在重写应用代码,因此GAE将停止所有实例并启动新实例。虽然这种情况发生,但应用程序无效。还存在延长停机时间的风险,请参阅Continuous integration/deployment/delivery on Google App Engine, too risky?
即使你正在部署不同的版本,但是你立即将100%的流量切换到它并且流量很高 - 自动缩放器需要一些时间来分析流量模式并旋转足够的动态实例来处理它。请参阅Use traffic migration or splitting when switching to a new default version。
我不认为在任何一种情况下使用app_cfg.py
或gcloud app deploy
部署都很重要。
一旦确认它正常运行,总是部署一个新版本并逐渐将流量切换到它应该解决所有这些情况。
空闲实例无法提供帮助,因为必须使用新代码进行调整。它们仅在高峰瞬态期间提供帮助,请参阅What does setting the automatic_scaling max_idle_instances to zero (0) do?