我正在尝试估算为应用内商店安装 GAE 的每月费用,但我并不真正了解什么是实例以及在一个实例中我能做什么。
我可以只拥有一个具有多个线程的实例来处理多个客户端吗?由于我每天每个应用程序都有 28 小时的免费实例 ( http://cloud.google.com/pricing/ ),这是否意味着我不会为一直运行的服务器应用程序付费?
我正在尝试估算为应用内商店安装 GAE 的每月费用,但我并不真正了解什么是实例以及在一个实例中我能做什么。
我可以只拥有一个具有多个线程的实例来处理多个客户端吗?由于我每天每个应用程序都有 28 小时的免费实例 ( http://cloud.google.com/pricing/ ),这是否意味着我不会为一直运行的服务器应用程序付费?
实例是虚拟服务器的实例,运行您的代码,能够为客户端提供请求。这通常是并行完成的(Goroutines、Java 线程、2.7 的 Python 线程),以最有效地使用可用资源。
响应时间取决于您在代码中执行的操作,并且通常取决于 IO。如果你有一个串行数据库查找的瀑布,它比你只有一个 multiget 并且可能是一个异步写入需要更长的时间。
与 GAE 的部分交易是 Google 为您处理弹性。如果有大量连接等待,新实例将根据需要启动(直到您的配额用完)。这意味着可能很难预先估计成本,因为您不确切知道代码的效率以及需要多少资源。我推荐一个方案,更多的使用意味着更多的收入,每个请求的收入高于每个请求的成本。:)
您可以调整设置,说您希望请求在队列中等待,或者总是有几个备用实例准备好为新请求提供服务,这将影响您的成本和用户的响应时间。
在 IaaS 场景中,您可以说您将使用 5 个实例,这就是成本,但实际上您可能在当地时间晚上只需要 1 个,而在一天的其余时间需要 25 个,这意味着您的用户很可能会看到连接断开或否则会有负面的用户体验。
免费实例通常能够在开发期间处理测试流量而不会耗尽配额。
那么 AppEngine 可能会决定您需要运行多个实例来处理请求,因此将启动另一个实例。您将无法将其限制为一个正在运行的实例。事实上,有时不清楚为什么 AE 会在请求数似乎很低时启动另一个实例,但如果它决定它需要另一个暖实例来准备好处理请求,如果服务实例太接近它们的限制,它就会这样做。