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 毫秒。

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

默认缓存行为
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.