首页 > 解决方案 > 如何正确配置 GCP App Engine

问题描述

我正在努力理解我在设置 App Engine 实例时使用的几个术语的区别和好处:

  1. 我想知道服务器如何处理多个请求?是否需要为每个请求创建我的服务器代码的新实例,听起来不太可能,但我想澄清一下。或者它是否创建了我处理请求的函数的副本?我的一个典型功能如下所示:

    app.get("/", limiter,  async function(req , res){
      try {
        my code 
      } catch (err){
        console.log(err);
        res.status(400).send('Something went wrong')
      }
    })
    
  2. 弹性环境与标准环境的关系是什么?

  3. 什么时候需要新实例?

我的 app.yaml 如下所示:

runtime: nodejs12
env: standard

manual_scaling:
  instances: 1 // Is this a bad idea in production?
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

请帮助我理解这一点,以便我可以正确设置我的实例。

标签: google-app-enginegoogle-cloud-platform

解决方案


  1. 既不需要新的服务器,也不需要新的函数实例。相反,相同的函数(async function(req , res)在你的情况下)被同时调用多次。每个调用都将有一个单独的请求和响应实例(reqres您的情况下)。

  2. StandardFlexible是 Google 提供的两种不同的 App Engine 产品,具有不同的功能和不同的定价。标准更具动态性(启动更快、部署更快、缩减到 0 个实例)。Flexible提供了更多选项(任何编程语言、对 Web 套接字的支持等)。有关更多详细信息,请参阅选择 App Engine 环境

  3. 除非您明确指定实例数,否则 Google App Engine 会监控请求延迟和可能的 CPU 负载,并会根据实际负载(可能在您设置的限制范围内)增加和减少正在运行的实例数。如果单个实例足以处理应用程序的负载,则可以将实例计数固定为 1。这是一个有效的设置。


推荐阅读