如果我们将 App Engine 配置为自动缩放,它会自动进行负载平衡吗?

Posted

技术标签:

【中文标题】如果我们将 App Engine 配置为自动缩放,它会自动进行负载平衡吗?【英文标题】:Does App Engine automatically load balance if we configure it to auto-scale? 【发布时间】:2021-03-25 23:28:25 【问题描述】:

如果我们将 App Engine 配置为自动缩放,App Engine 是否会自动进行负载平衡?或者我们是否需要手动为 App Engine 上托管的应用添加负载平衡器?

我这周刚开始学习 GCP,我的培训师给我分配了一项任务,即在 App Engine 上部署应用程序并将其连接到负载平衡器和 CDN。我已经了解如何在 Compute Engine 中使用负载平衡器。但是由于 App Engine 无需我们进行任何配置即可处理自动缩放,它是否也自动处理负载平衡?还是我们必须手动设置负载均衡器?我尝试使用 App Engine 搜索很多关于负载平衡器的信息,但我唯一能找到的是一些“网络端点组(NEG)”。由于不熟悉容器和 Kubernetes,我无法理解任何 NEG 文章。有人可以解释一下 App Engine 的负载平衡以及如何做到这一点吗?

【问题讨论】:

App Engine 自动缩放(如果配置正确)。部署 Google 负载均衡器的目的是添加 App Engine 作为后端。这可能用于 URL 映射、故障转移等。App Engine 有一个称为 GFE(Google 前端)的负载平衡器。这并没有否定另一个负载均衡器的好处,它根据请求 URL 将流量分配到不同的服务。有些请求可能会发送到 Cloud Storage(CSS、JS、图像),有些请求会发送到您的 App Engine 服务,有些请求会发送到 Cloud Run 或 Cloud Functions,甚至是本地服务器。 【参考方案1】:

是的,GAE 包含一个负载平衡器。一旦您扩展到 2 个实例,这是必要的,GAE 会为您处理。 GAE 为您解决了这个问题(例如比 AWS Elastic Beanstalk 好得多)。

对于更复杂的情况(例如 Kubernetes),您可以手动创建和配置负载均衡器。我认为您永远不会在 GAE 中使用自定义负载均衡器。

【讨论】:

以上是关于如果我们将 App Engine 配置为自动缩放,它会自动进行负载平衡吗?的主要内容,如果未能解决你的问题,请参考以下文章

Google App Engine 自动缩放如何工作?

Azure Web App 未及时自动缩放

如果自动扩缩功能无法创建新实例,App Engine 请求会发生啥情况?

Google App Engine 在基本缩放上抛出错误

(基本缩放)如果达到空闲超时,App Engine 是不是会关闭仍在忙于处理请求的应用?

hasura graphql-engine ha 以及自动缩放的一些参考资料