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

Azure Cosmos DB 集成缓存常见问题解答

适用范围: NoSQL

Azure Cosmos DB 集成缓存是内置于 Azure Cosmos DB 的内存中缓存。 本文解答有关 Azure Cosmos DB 集成缓存的常见问题。

常见问题

为什么集成缓存需要专用网关?

如果已使用网关模式连接到 Azure Cosmos DB,则已使用标准网关。 尽管 Azure Cosmos DB 后端(预配的吞吐量和存储)为每个容器提供专用容量,但标准网关在许多客户之间共享。 对于许多客户而言,共享标准网关是切实可行的,因为这样每个客户消耗的计算资源最少。 由于集成缓存特定于 Azure Cosmos DB 帐户,且需要大量的 CPU 和内存,因此它需要专用网关节点。

什么是专用网关?

专用网关是服务器端计算单元,充当 Azure Cosmos DB 帐户中数据的前端。 当使用网关模式连接到专用网关终结点时,应用程序会将请求发送到专用网关,然后该网关会将请求路由到不同的后端分区。 支持对专用网关使用直接模式,但这些请求不会使用集成缓存。

与使用标准网关相比,使用专用网关是否还具有其他性能优势?

通常,与标准网关路由的请求相比,专用网关路由的请求的延迟更低且更一致。 即使是不使用集成缓存的请求,其延迟也会比标准网关略低。

集成缓存的延迟是哪种延迟?

集成缓存提供的请求速度很快,因为缓存数据存储在专用网关的内存中,而不是存储在后端。

对于缓存点读取,延迟中值可能为 2-4 毫秒。 对于缓存查询,延迟取决于查询。 查询缓存的工作原理是缓存查询引擎对特定查询的响应。 然后将此响应发送回客户端的 SDK 进行处理。 对于简单查询,SDK 中所需的处理量是最少的,并且延迟中值通常为 2-4 毫秒。 而使用 GROUP BYDISTINCT 的更复杂查询在 SDK 中的处理也更繁琐,因此延迟也可能更长,甚至会产生查询缓存。

如果之前使用直接模式连接到 Azure Cosmos DB,并切换为使用专用网关进行连接,某些请求的延迟可能会略微增加。 使用网关模式需要将请求发送到网关(在这种情况下为专用网关),然后以适当方式路由到后端。 顾名思义,直接模式使客户端可以直接与后端进行通信,从而消除了多余的跃点。 使用专用网关的请求没有延迟 SLA。

如果应用先前使用直接模式,则集成缓存的延迟优势仅在以下方案中较为显著:

  • 大型项 (> 16 KB) 的点读取延迟
  • 高 RU 或复杂查询

如果应用之前将网关模式与标准网关一起使用,则集成缓存可在几乎所有方案中减少延迟。

Azure Cosmos DB 可用性 SLA 是否扩展到专用网关和集成缓存?

对于需要高可用性的场景,要包含在 Azure Cosmos DB 可用性 SLA 中,应至少预配 3 个专用网关节点。 例如,如果生产中需要一个专用网关节点,应再预配两个专用网关节点,以应对可能发生的停机、中断或升级。 如果仅预配了一个专用网关节点,你将在这些情况下暂时失去可用性。 此外,请确保专用网关有足够的节点来处理你的工作负载。

集成缓存目前仅适用于 API for NoSQL。 是否还计划将其发布给其他 API?

长期路线图上规划了将集成缓存扩展到 API for NoSQL 之外,但会超出集成缓存的初始范围。

集成缓存支持什么一致性?

集成缓存支持会话和最终一致性。 还可以配置可选的 MaxIntegratedCacheStaleness,这将对缓存的数据设置上限。

后续步骤