TL;DR -单独的 GCE 2.0 比 GCE 1.0 更快、更可靠,但不要使用 API 管理,否则你会回馈所有这些收益,然后是一些收益。
在测试 GCE 2.0 时,我也看到了严重的缓慢问题,而且我无法证明让我的用户遭受如此可怕的延迟下降是合理的,所以我开始确定发生了什么。
这是我的方法:
我使用 Endpoints 1.0、Endpoints 2.0 和 Endpoints 2.0 with API Management 设置了一个最小可行的 App Engine 应用程序,该应用程序仅包含一个简单的 API 调用,该调用返回服务器时间戳。您可以在此处查看所有这些代码:https ://github.com/ubragg/cloud-endpoints-testing
我将它们中的每一个部署到一个单独的 App Engine 应用程序中,并在这些链接上使用 API Explorer 测试了 API(因此您可以自己尝试):
GCE 1.0
GCE 2.0
GCE 2.0+AM
结果?以下是每个 API 上一系列快速连续请求的结果:
GCE 1.0 GCE 2.0 GCE 2.0+AM
average 434 ms 80 ms 482 ms
median 90 ms 81 ms 527 ms
high 2503 ms 85 ms 723 ms
low 75 ms 73 ms 150 ms
如您所见,没有 AM 的 GCE 2.0 既快速又一致。即使是 GCE 1.0 通常也很快,但偶尔会出现一些麻烦的异常值。带有 AM 的 GCE 2.0 几乎总是慢得让人无法接受,只有在极少数情况下才会进入“可能可以接受”的范围。
请注意,所有这些时间都是从 API Explorer 报告的客户端角度来看的。以下是服务器在同一时间段内报告的来自 App Engine 信息中心的相同请求的平均值:
GCE 1.0 GCE 2.0 GCE 2.0+AM
average 24 ms 14 ms 395 ms
所以底线是,如果您关心延迟,API 管理并不是一个真正的选择。如果您对如何在没有 API 管理的情况下运行 GCE 2.0 感到好奇,请确保不要遵循此处的任何说明:https ://cloud.google.com/endpoints/docs/frameworks/python/adding-api-management .