谷歌应用引擎中服务之间的延迟

Posted

技术标签:

【中文标题】谷歌应用引擎中服务之间的延迟【英文标题】:Latency between services in google app engine 【发布时间】:2019-11-28 17:55:01 【问题描述】:

我想将托管在 Google 应用引擎上的应用拆分为各种服务,并使用其他运行时。

目的是为了提高性能,我找不到的信息是单个谷歌应用引擎应用程序中不同服务之间的延迟是多少。为了澄清,我对使用 HTTP 的通信延迟感兴趣。

此外,GAE 与其他 Google 服务(例如函数或运行)之间的延迟是多少?

【问题讨论】:

部署测试用例并测量它。 “引用”一个值的依赖项太多。这仅取决于您如何设计系统。 【参考方案1】:

您可以预计特定区域内的往返网络延迟时间为less than 1ms 95%。单个数据中心内的往返网络延迟可以小于 500μs。区域间网络延迟取决于它们的地理距离,以及您是否使用Standard or Premium Tier 网络。

在实践中衡量您的延迟的唯一方法是在实践中衡量您的延迟。 Trace 等工具可以帮助您分析 App Engine 应用程序的延迟情况。


网络延迟就像重力:它作为系统组件之间理论上可能存在的延迟的基准,但在实践中观察到的实际延迟将取决于您的应用程序、资源的部署位置以及您使用的 GCP 服务。例如,网络延迟不包括序列化/反序列化来自网络的 HTTP 请求的成本,或代码的执行时间。

在我的重力比喻中,将其视为“风阻”。如果你问“一个盒子下落的速度有多快?”,知道引力常数只会告诉我在没有所有正常的世俗约束的情况下它可以下落的最大速度。为了准确回答您的问题,我需要知道盒子的大小、形状、重量和质地、气温和速度/方向、您从哪个高度掉落它,以及您从哪个星球'是什么,你的气氛是由什么制成的。所以,像这样一个简单的问题往往没有简单的答案。

【讨论】:

【参考方案2】:

不同实例之间可能面临的延迟取决于不同的情况,例如,应用引擎实例所在的区域或它们正在执行的任务,例如,对于一个“hello world”应用程序来说,时间不同比其他更复杂。 另外,我建议您查看有关 App Engine 如何处理请求(在这种情况下为标准环境)[1] 的官方文档,根据本文档中提到的,App Engine Standard 的请求持续时间最长为 60秒。 您也可以查看这篇文章作为参考 [2]。

[1]https://cloud.google.com/appengine/docs/standard/python/how-requests-are-handled

[2]https://cloud.google.com/blog/products/gcp/best-practices-for-app-engine-startup-time-google-cloud-performance-atlas

【讨论】:

以上是关于谷歌应用引擎中服务之间的延迟的主要内容,如果未能解决你的问题,请参考以下文章

如何在谷歌应用引擎和计算引擎之间建立私有连接?

在开发服务器的谷歌应用引擎中处理图像时出现问题

如何从同一应用项目中的 python2.7 微服务访问谷歌应用引擎 ndb 数据存储

谷歌应用引擎或亚马逊网络服务[关闭]

如何减少谷歌应用引擎后端的日志服务 RPC

谷歌应用引擎 - 权限被拒绝错误