8.2. 默认缓存

对于没有缓存的请求,这些是事件:

  1. APIcast 从匹配的映射规则中提取用量指标。
  2. APIcast 将指标加上应用凭据发送到 3scale 后端服务器。
  3. 3scale 后端服务器执行以下操作:

    1. 检查应用密钥,并且报告的指标使用量是否在定义的限制之内。
    2. 对后台作业排队,以增加所报告指标的使用量。
    3. 响应 APIcast 请求是否应授权。
  4. 如果请求被授权,请求将转至上游.

在这种情况下,请求不会到达上游,直到 3scale 后端服务器响应为止。

另一方面,使用默认启用的缓存机制:

  • APIcast 将存储在缓存中,如果已授权,则向 3scale 后端服务器授权调用的结果。
  • 下一个具有相同凭据和指标的请求将使用该缓存的授权,而不是前往 3scale 后端服务器。
  • 如果请求未获得授权,或者 APIcast 首次收到凭据,APIcast 将同步调用 3scale 后端服务器,如上方所述。

缓存身份验证后,APIcast 首先调用上游,然后在名为 post 操作的 阶段中,它将调用 3scale 后端服务器并在缓存中存储授权,使它准备好下一请求。请注意,对 3scale 后端服务器的调用不会引入任何延迟,因为它不会在请求时间发生。但是,在同一连接中发送的请求将需要等待后续 操作 阶段结束。

想象一下,客户端使用 keep-alive 并 每秒发送请求的情况。如果上游响应时间为 100 ms,3scale 后端服务器的延迟为 500 毫秒,客户端每次都会获得 100 毫秒的响应。上游响应和报告总共需要 600 毫秒。这在下一请求到来前额外提供了 400 毫秒。

下图说明了默认的缓存行为。缓存机制的行为可以使用 缓存策略 来更改。

默认缓存行为