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

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

重要

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

cache policies

学习内容:

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

可用性

注意

内部缓存在 Azure API 管理的“消耗”层中不可用。 可以改为使用外部 Azure Redis 缓存

先决条件

完成本教程:

添加缓存策略

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

  1. 登录 Azure 门户

  2. 浏览到自己的 APIM 实例。

  3. 选择“API”选项卡。

  4. 在 API 列表中单击“演示会议 API”。

  5. 选择“GetSpeakers”。

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

  7. 在“入站处理”部分中,单击 </> 图标。

    code editor

  8. 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>
    
  9. outbound 元素中添加以下策略:

    <cache-store duration="20" />
    

    持续时间指定缓存响应的到期时间间隔。 此示例中的时间间隔为 20 秒。

提示

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

调用操作和测试缓存

若要查看作用的缓存,请从开发人员门户调用操作。

  1. 在 Azure 门户中浏览到自己的 APIM 实例。
  2. 选择“API”选项卡。
  3. 选择向其添加了缓存策略的 API。
  4. 选择“GetSpeakers”操作。
  5. 单击右上方菜单中的“测试”选项卡。
  6. 按“发送”。

后续步骤