【问题标题】:Google App Engine with Python 3: Mix Standard and Flexible for Websockets使用 Python 3 的 Google App Engine:混合标准和灵活的 Websockets
【发布时间】:2020-03-20 23:05:09
【问题描述】:

我已经开始将网络应用后端移植到 Google App Engine 以进行扩展。但我对 GAE 完全陌生,只是阅读这些概念。陡峭的学习曲线。

我有 95% 的把握,在某个时候,数百万或至少数十万用户将通过我正在编写的 GUI 应用程序开始使用 Web 应用程序。他们将是全局用户,所以在未来的某个时候,我期望连接请求流相对稳定。

我们想到了 GAE 标准环境来进行扩展。 但我也希望 GUI 应用程序在后端用户相关数据发生变化时做出反应。这建议使用标准环境中不支持的 Web 套接字,但在柔性环境中。

这是我的想法:主要后端发生在标准应用程序中,但 GUI 通过 Web 套接字侦听来自灵活应用程序的更新通知。标准应用程序在发生值得注意的数据更改后调用灵活应用程序,并且灵活应用程序通知 GUI。

但这可能吗?因为同级灵活实例彼此不知道(或者它们是?),我如何通过来自标准应用程序的传入调用触发灵活实例持有的持久连接以发送通知?

(同样的问题也适用于我只有一个灵活应用而没有标准应用的情况,因为情况是一样的。)

我假设灵活应用可以访问与标准应用相同的数据存储。没看过这个。

还请评论标准应用在这种情况下是否是一个好主意,我应该选择灵活。这些对我来说真的是新概念。

另外:Flexible 应用拥有的持久连接数是否有限制?或者如果达到限制,它会简单地启动另一个实例吗?

从长远来看,这两种环境中的哪一种最终会更便宜?

非常感谢。

【问题讨论】:

    标签: python-3.x google-app-engine websocket


    【解决方案1】:

    每个项目只能有一个应用引擎实例,但一个实例内可以有多个弹性服务或标准服务。

    标准是否是一个好主意取决于你的架构,我很确定你已经看过the comparison chart,从经验来看,如果你的应用可以在所有限制下正常工作(代码运行时,不可用于执行后台进程,无需 SSH 调试等)我肯定会选择标准,因为它在处理流量峰值时具有非常好的性能,可在几秒钟内部署新服务,请记住,最好需要自动扩展性能结果。


    multiple ways 可以在 flexstandard 服务之间进行连接,其中一种是将 HTTP 请求从一项服务发送到另一项服务,但也可以使用 GCP 服务(如 Pub/Sub)的其他选项。

    在标准环境下,你也可以在 使用 URL Fetch 从服务到外部端点 API。

    此外,驻留在标准环境中的服务 同一个 GCP 项目也可以使用其中一种 App Engine API 以下任务:

    • 共享一个内存缓存实例。

    • 通过分配工作进行协作 通过任务队列在服务之间进行。


    关于数据存储,您可以从不同的服务访问相同的数据存储,这里是 quickstart for flexquickstart for standard


    从长远来看,这两种环境中的哪一种最终会更便宜?

    • 标准定价基于实例小时数
    • 灵活定价基于 vCPU、内存和永久性磁盘的使用情况

    如果您的服务在短时间内运行性能非常高的进程,标准可能会是 chepear,但是如果您长时间运行低性能进程,flex 会是 chepear,但这又取决于每个用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-30
      • 2020-11-23
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2018-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多