首页 > 解决方案 > API 之间的 Azure 慢速通信

问题描述

在大约 1-5% 的请求中,我们看到 API 之间的通信缓慢(REST API 请求)。这两个 API 均由我们开发并托管在 Azure 上,每个应用服务都在同一区域的 P1v2 层中使用自己的应用服务计划。

我们在应用程序洞察中看到的是,源 API 上的 POST 或 GET 请求可能需要几秒钟才能执行,而目标 API 上的实际执行时间只有几毫秒。

示例(源上的第一行 POST 请求,目标 API 上的第二次执行时间):slow req 1slow req 2

我们最好的猜测是组件之间的通信丢失了时间差。我们没有对此进行解释,因为有效载荷非常小,并且在大多数情况下,通信时间不到 5 毫秒。

我们驳斥了这可能是由于组件冷启动的可能解释,因为它发生在恒定负载期间并且没有执行水平缩放。

您是否知道可能导致它的原因或如何进行额外分析以发现它?

标签: azurerestazure-web-app-serviceazure-application-insights

解决方案


如果您在应用服务计划上运行多个站点,请为您的 Web 应用启用“始终开启”设置。

您可以从 portal.azure.com -> 您网站的刀片 -> 所有设置 -> 应用程序设置 -> 始终开启

有关详细信息,请参见此处: https ://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

禁用 Always On 后,该站点会在 20 分钟不活动后关闭,以便为可能在同一应用服务计划上运行的任何其他站点释放资源。


它需要收集、处理然后呈现自己的信息量需要一些时间,并且还涉及内部调用,这就是为什么考虑到服务器负载和使用情况,它需要大约 6 到 7 秒,有时甚至更多。要解决该延迟问题,请尝试以下步骤!


推荐阅读