【发布时间】:2020-02-13 13:26:58
【问题描述】:
我在 App Engine Java 11 标准环境中部署了一个 Java Spring-Boot 应用程序。 我的 app.yaml 配置非常简单:
runtime: java11
env: standard
instance_class: B4
handlers:
- url: .*
script: auto
basic_scaling:
idle_timeout: 3600s
max_instances: 1
如果我没记错的话,这应该让实例在关闭前运行一个小时。当我查看日志时,我可以看到在创建实例几分钟后发送 /_ah/stop 请求并且实例关闭:
2020-02-13T12:43:35.125504Z GET 200 95 B 23,3 s Unknown /_ah/start I GET 200 95 B 23,3 s
2020-02-13T12:43:45.590697Z . ____ _ __ _ _ A
2020-02-13T12:43:45.590710Z /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ A
2020-02-13T12:43:45.591215Z ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ A
2020-02-13T12:43:45.591236Z \\/ ___)| |_)| | | | | || (_| | ) ) ) ) A
2020-02-13T12:43:45.591251Z ' |____| .__|_| |_|_| |_\__, | / / / / A
2020-02-13T12:43:45.591266Z =========|_|==============|___/=/_/_/_/ A
2020-02-13T12:43:45.596711Z :: Spring Boot :: (v2.2.3.RELEASE) A
[...]
2020-02-13T12:50:34.948123Z GET 200 95 B 59 ms Unknown /_ah/stop A GET 200 95 B 59 ms
为什么会这样?实例不应该保持空闲至少 60 分钟吗?我在这里做错了什么还是 Google App Engine 有问题?
【问题讨论】:
-
您的实例在收到请求后是否立即关闭?
-
是的,差不多。当我随后立即打开“/var/log/google_init.log”时,它还会记录:2020-02-13T12:50:35.495014Z [start] 2020/02/13 13:50:35.494065 退出终止信号 2020 -02-13T12:50:35.504274Z [开始] 2020/02/13 13:50:35.503817 启动程序失败:用户应用程序失败,退出代码为 -1(有关更多详细信息,请参阅 stdout/stderr 日志):信号:终止 2020 -02-13T12:50:35.709105967Z 容器名为 exit(1)。
标签: java spring-boot google-app-engine