【问题标题】:Mongo database in GCP app engineGCP 应用引擎中的 Mongo 数据库
【发布时间】:2018-07-12 22:54:05
【问题描述】:

我目前正在研究 GCP app engine,并且正在研究如何部署具有多种服务的大型应用程序。我也想用mongodb。 GCP 文档说应用引擎允许使用 dockerfile 和图像。如果我在应用引擎上使用 mongo docker 镜像作为服务会发生什么?它将如何扩展它的实例?一致性会发生什么?我知道 GCP 为 mongo 提供了第三方解决方案,但由于它们允许使用 docker 图像,是什么阻止了我使用它?

【问题讨论】:

    标签: mongodb google-app-engine docker google-cloud-platform


    【解决方案1】:

    App Engine 会定期拆除并创建新实例。如果您的实例正在运行 MongoDB,那么存储在该实例中的所有数据都将丢失。

    这就是为什么 Google Cloud 提供其他永久存储状态的位置,例如 Datastore 和 CloudSQL。您也可以自己在 Google Compute Engine 上运行 MongoDb。

    【讨论】:

    • 正如@JeffreyRennie 所说,GAE 实例会频繁重启,因此您会丢失数据。这是GAE StandardFlexible 中的正常运行时间文档
    【解决方案2】:

    如果我在应用引擎上使用 mongo docker 镜像作为服务会发生什么?

    Flexible App Engine 允许您使用 docker 映像来构建自己的应用程序,如本文档 [1] 中所述:“App Engine 柔性环境实例是 Compute Engine 虚拟机,这意味着您可以利用自定义库,使用 SSH 进行调试,并部署您自己的 Docker 容器。” 所以在flexible app Engine中使用自己的docker镜像是没有问题的。

    它将如何扩展它的实例?

    App Engine 中的每个活动版本必须至少有一个实例来处理请求,在 App Engine 中扩展实例有两种方法:自动和手动。

    根据文档[2] 中提到的: 自动扩展根据请求率、响应延迟和其他应用程序指标创建实例。您可以为这些指标中的每一个指定阈值,以及始终保持运行的最小实例数。 手动扩展指定无论负载水平如何都连续运行的实例数。这允许复杂的初始化和应用程序等任务随着时间的推移依赖于内存的状态。 配置这些功能的方式是通过app.yaml文件,我建议你阅读这个文档[3]

    一致性会怎样?

    由于可以根据负载配置 App Engine 缩放,因此可以在服务执行中提供良好的性能,并提供操作的一致性和资源优化。

    [1]https://cloud.google.com/appengine/docs/flexible#features [2]https://cloud.google.com/appengine/docs/flexible/go/how-instances-are-managed#instance_scaling [3]https://cloud.google.com/appengine/docs/flexible/go/configuring-your-app-with-app-yaml

    【讨论】:

      猜你喜欢
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 2019-05-11
      • 1970-01-01
      • 2018-01-23
      • 2011-03-08
      • 2010-11-28
      相关资源
      最近更新 更多