反模式:在配额政策中使用高基数标识符

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

配额政策用于统计 API 代理收到的请求数量。借助此功能,API 提供商可以在某个时间段内应用执行的 API 调用数量强制执行限制。

配额政策可以包含一个 identifier 元素,用于标识每个请求所计入的配额“存储分区”。

反模式

使用配额政策时,请勿使用高基数标识符。

基数是指一组数据中唯一数据值的数量。高基数标识符具有大量不同的可能值。高基数标识符包括每次 API 调用都会更改的唯一请求 ID 或会话 ID。

使用高基数标识符会严重影响配额强制执行的有效性。

影响

为配额政策的标识符元素使用高基数标识符会导致:

  • 配额强制执行无效:每个唯一标识符都被视为一个单独的计数器。如果每个请求都有一个新的唯一 ID,您的配额系统实际上会为每次 API 调用创建一个新的“存储分区”。这意味着,您的总体配额限额是根据单个一次性计数器来衡量的,而不是根据您要限制的实际请求组来衡量的,这使得该政策无法用于流量控制。
  • 资源消耗增加:生成和管理大量唯一的配额计数器会给 Apigee 平台带来不必要的压力,导致资源使用量增加,并可能出现性能问题。
  • 监控挑战:当数据分散在大量唯一标识符中时,很难监控和了解实际的 API 消耗趋势。您将无法查看哪些应用、开发者或产品正在使用您的 API 资源。

最佳做法

选择基数较低到中等的标识符,这些标识符还应代表一种稳定且有意义的分组,以便强制执行配额。这些指标有助于您有效管理 API 使用情况,并深入了解流量。 例如:

  • developer.app.name
  • client_id
  • apiproduct.name

借助适当的标识符,配额政策可以更有效地管理 API 流量、防止意外超额,并清晰地了解使用模式。