你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

添加缓存以提高 Azure API 管理中的性能

适用于:开发人员 | 基本 | 基本 v2 | 标准 | 标准 v2 | 高级 | 高级 v2 | 独立

API 管理中的 API 和操作可以使用响应缓存进行配置。 响应缓存可以显著减少 API 调用方的延迟和 API 提供程序的后端负载。 本文介绍如何向 API 添加缓存。

重要

内置缓存是易失性的,由同一 API 管理实例中同一区域中的所有单元共享。 无论使用的缓存类型(内部或外部),如果缓存相关作由于缓存的波动或出于任何其他原因而无法连接到缓存,则使用缓存相关作的 API 调用不会引发错误,并且缓存作成功完成。 对于读取操作,会向调用策略表达式返回一个空值。 策略代码应设计为确保有一种回退机制来检索缓存中未找到的数据。

若要更详细地了解缓存,请参阅 API 管理缓存策略Azure API Management 中的自定义缓存

显示 API 管理中的缓存策略的屏幕截图。

在本文中,你将会:

  • 为 API 添加响应缓存
  • 验证缓存是否正常工作

注意

Azure API 管理的 Consumption 层无法使用内部缓存。 可以改为使用外部 Azure Redis 缓存。 还可以在其他 API 管理服务层级中配置外部缓存。

先决条件

添加缓存策略

在此示例中所示的缓存策略中,对测试作的第一个请求返回来自后端服务的响应。 将缓存此响应,由指定的标头和查询字符串参数进行键控。 对作的后续调用(具有匹配参数)将返回缓存的响应,直到缓存持续时间间隔过期。

  1. 登录到 Azure 门户

  2. 转到 API 管理实例。

  3. 在左侧菜单中选择 API>API

  4. 选择要为其配置缓存的 API。

  5. 在屏幕顶部,选择“ 设计 ”选项卡。

  6. “入站处理 ”部分中,选择 </> 图标:

    显示门户中 API 管理 API 的屏幕截图。

  7. inbound 元素中,添加以下策略:

    <cache-lookup vary-by-developer="false" vary-by-developer-groups="false">
        <vary-by-header>Accept</vary-by-header>
        <vary-by-header>Accept-Charset</vary-by-header>
        <vary-by-header>Authorization</vary-by-header>
    </cache-lookup>
    
  8. outbound 元素中,添加以下策略:

    <cache-store duration="20" />
    

    在此策略中, duration 指定缓存响应的过期间隔。 间隔为 20 秒。

  9. 选择“保存”

提示

如果使用外部缓存,如 在 Azure API 管理中使用外部 Azure Redis 缓存中所述,可能需要指定 caching-type 缓存策略的属性。 有关详细信息,请参阅 API 管理缓存策略

调用一个操作以测试缓存

若要测试缓存,请在门户中执行某项操作。

  1. 在 Microsoft Azure 门户中,转到 API 管理实例。
  2. 在左侧菜单中选择 API>API
  3. 选择向其添加了缓存策略的 API。
  4. 选择要测试的操作。
  5. 选择窗口顶部的“ 测试 ”选项卡。
  6. 连续快速选择“跟踪”两次或三次。
  7. 在“HTTP 响应”下,选择“跟踪”选项卡。
  8. 跳转到“入站”部分并滚动到 策略。cache-lookup 应会看到类似于以下屏幕截图中的消息,该消息指示缓存命中: 在门户中测试 API 时缓存查找的屏幕截图。