我正在使用Google App Engine Flexible环境(Node.js)。是否有任何理由为什么在每个指定的间隔时间内每次都会激活6次活动和准备情况检查? (这些都是在同一时间戳)
A GET 200 2 B 2 ms GoogleHC/1.0 /readiness_check GET 200 2 B 2 ms GoogleHC/1.0
A GET 200 2 B 2 ms GoogleHC/1.0 /readiness_check GET 200 2 B 2 ms GoogleHC/1.0
A GET 200 2 B 1 ms GoogleHC/1.0 /readiness_check GET 200 2 B 1 ms GoogleHC/1.0
A GET 200 2 B 1 ms GoogleHC/1.0 /readiness_check GET 200 2 B 1 ms GoogleHC/1.0
A GET 200 2 B 3 ms GoogleHC/1.0 /readiness_check GET 200 2 B 3 ms GoogleHC/1.0
A GET 200 2 B 1 ms GoogleHC/1.0 /readiness_check GET 200 2 B 1 ms GoogleHC/1.0
A GET 200 2 B 2 ms GoogleHC/1.0 /liveness_check GET 200 2 B 2 ms GoogleHC/1.0
A GET 200 2 B 2 ms GoogleHC/1.0 /liveness_check GET 200 2 B 2 ms GoogleHC/1.0
A GET 200 2 B 2 ms GoogleHC/1.0 /liveness_check GET 200 2 B 2 ms GoogleHC/1.0
A GET 200 2 B 2 ms GoogleHC/1.0 /liveness_check GET 200 2 B 2 ms GoogleHC/1.0
A GET 200 2 B 1 ms GoogleHC/1.0 /liveness_check GET 200 2 B 1 ms GoogleHC/1.0
A GET 200 2 B 1 ms GoogleHC/1.0 /liveness_check GET 200 2 B 1 ms GoogleHC/1.0
准备情况检查无限期地继续是正常的吗?我原本以为准备检查会在实例被认为“准备就绪”后停止。只是现场检查似乎就足够了,似乎没有必要同时准备和活动检查不断击中我的实例。如果有人知道更好的配置方式,以便它不是那么多余,我会非常感激。我的app.yaml的相关部分可以在下面看到:
runtime: nodejs
env: flex
readiness_check:
path: '/readiness_check'
check_interval_sec: 20
timeout_sec: 4
failure_threshold: 2
success_threshold: 2
app_start_timeout_sec: 300
liveness_check:
path: '/liveness_check'
check_interval_sec: 30
timeout_sec: 4
failure_threshold: 3
success_threshold: 2
initial_delay_sec: 300
谢谢!
答案 0 :(得分:1)
准备检查的目的是永久地继续,以便您可以根据自己的意愿从流量轮换中删除VM(例如,您想要重新加载某些缓存等)。活力也是如此。它还允许负载均衡器检测问题并移除VM(例如,如果您的应用程序崩溃并正在重新启动)或者治愈它(如果VM完全死亡)。
关于请求的数量 - 它取决于您部署的实例数(您运行的是2个实例吗?),它可以处理每个实例3个并行请求(来自3个不同的健康检查器),这样我们就可以确保可用性和可靠性结果。
在宏观方案中,除非你过于激进并且实施过于昂贵的自定义运行状况检查处理程序,否则这应该是VM的最小流量。
希望它有所帮助, 安德烈