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

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

适用范围:开发人员 | 基本 | 基本 v2 | 标准 | 标准 v2 | 高级 | 高级 v2

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

重要

内置缓存是易失性的,由同一 API 管理服务中同一区域的所有单元共享。 无论使用哪种缓存类型(内部或外部),如果缓存相关的操作由于缓存不稳定或任何其他原因而无法连接到缓存,则使用缓存相关操作的 API 调用不会引发错误,并且缓存操作将成功完成。 对于读取操作,会向调用策略表达式返回一个空值。 策略代码应设计为确保实施一个“回退”机制,以便检索缓存中找不到的数据。 若要更详细地了解缓存,请参阅 API 管理缓存策略Azure API Management 中的自定义缓存

缓存策略

学习内容:

  • 为 API 添加响应缓存
  • 验证作用的缓存

注意

内部缓存在 Azure API 管理的“消耗”层中不可用。 可以改为使用外部 Azure Redis 缓存。 还可以在其他 API 管理服务层级中配置外部缓存。

先决条件

完成本教程:

添加缓存策略

借助此示例中显示的缓存策略,向测试操作发出的第一个请求会返回来自后端服务的响应。 将缓存此响应,由指定的标头和查询字符串参数进行键控。 采用匹配的参数,对操作的后续调用会返回缓存的响应,直到缓存时间间隔过期。

  1. 登录到 Azure 门户

  2. 浏览到 API 管理实例。

  3. 从左侧菜单中选择“API”>“API”

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

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

  6. 在“入站处理”部分,选择“</>”图标。 门户中 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" />
    

    在此策略中,“持续时间”指定了缓存响应的过期时间间隔。 此示例中的时间间隔为 20 秒。

提示

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

调用操作和测试缓存

要查看运行中的缓存,请从门户调用操作。

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