【发布时间】:2023-04-03 10:32:01
【问题描述】:
您遇到的问题:我在 Google App Engine 上部署了一个 Spring Boot 应用程序(后端)。在过去的几天里,我间歇性地收到以下提到的错误: 错误:由于超出请求期限,进程终止。 (错误代码 123)
说明:
我在 Google App Engine 上部署了一个 Spring Boot 应用程序(后端)。 在过去的几天里,我间歇性地收到以下提到的错误: 错误:由于超出请求期限,进程终止。 (错误代码 123)
应用程序使用 CloudSQL (MySQL) 数据库。我还设置了下面提到的自动缩放属性:
<sessions-enabled>true</sessions-enabled>
<warmup-requests-enabled>true</warmup-requests-enabled>
<instance-class>F2</instance-class>
<automatic-scaling>
<target-cpu-utilization>0.65</target-cpu-utilization>
<min-instances>10</min-instances>
<max-instances>20</max-instances>
<min-idle-instances>5</min-idle-instances>
<max-idle-instances>6</max-idle-instances>
<min-pending-latency>30ms</min-pending-latency>
<max-pending-latency>500ms</max-pending-latency>
<max-concurrent-requests>10</max-concurrent-requests>
</automatic-scaling>
<inbound-services>
<service>warmup</service>
</inbound-services>
您预期会发生什么:托管在 GAE 上的应用程序不应因此间歇性错误而失败
重现的步骤:没有可用的步骤,它是间歇性的。
其他信息(您尝试过的解决方法、查阅的文档等):我尝试了多种不同的自动缩放配置组合等。
【问题讨论】:
-
所提到的这个问题是间歇性的,会导致 API 响应缓慢(因为它是后端应用程序)并最终失败并出现 500 Http 错误代码以及详细信息中提到的错误消息。围绕“延迟”:“100.205186s”
-
您好,您的应用程序是否向外部服务发出请求调用?我在 SO 上发现了一个类似的问题,其中提出了 2 个可能的改进:使用预热请求并在任务队列中调用外部服务。
-
您好,-是的,我已经处理了预热请求-您能否确认您指的是哪种外部服务?
-
嗨,根据 SO 帖子的先前评论:stackoverflow.com/questions/30913255/…。它指的是预热请求和外部服务两种方法。 TaskQueue 中的外部服务:cloud.google.com/appengine/docs/standard/python/taskqueue