【问题标题】:Googel App Engine: Intermittent Issue: Process terminated because the request deadline was exceeded. (Error code 123)Google App Engine:间歇性问题:由于超出了请求期限,进程终止。 (错误代码 123)
【发布时间】: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

标签: google-app-engine


【解决方案1】:

我只是在 GAE 标准 Java 8 应用程序中遇到了完全相同的问题 - 经过大量试验和错误后,我发现该问题与 Cloud SQL 有关 - 一个症状是自动缩放的实例经常重启(可能崩溃),好像有有什么卡住了。 “错误:由于超出了请求期限,进程终止。(错误代码 123)”也没有产生更多日志。

解决方案(在我们的例子中)是(因为这是我们在错误一直出现之前所做的唯一更改)我们经常在我们的应用程序中使用 Cloud SQL Query,如下所示:

当 column=1 then 1 else -1 end 时的情况

在某些(极少数)情况下,列可能为 NULL - 我们测试的普通 SQL 客户端没有问题,但由于某些奇怪的原因,Cloud SQL 和 JDBC 存在问题,导致这些实例问题

改成

coalesce(column,0)=1 then 1 else -1 end

这样在case语句中永远不会有与NULL的比较解决了问题

【讨论】:

    猜你喜欢
    • 2016-05-26
    • 2015-09-03
    • 2020-01-22
    • 2011-03-29
    • 2020-01-31
    • 2012-01-14
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    相关资源
    最近更新 更多