Skip to content

速率限制

为了保证 Genstore 平台的稳定性,我们对 REST API 实施了速率限制。通过多种策略确保限制的执行,开发者在开发应用时需了解这些限制,并采用标准技术手段规避超限。

WARNING

请严格遵守 API 速率限制,确保服务的可靠性,严格禁止在面向客户的应用中使用 API,以免因速率限制导致服务中断。

速率限制策略

下表概述了各类 API 的速率限制策略,包括标准、高级和企业级限制:

API 类型限制方式标准限制策略
REST API请求次数限制桶大小 40;
恢复速率:2 / 秒

速率限制

我们使用令牌桶算法来管理 API 请求速率,具体机制如下:

  • 初始桶大小:每个应用在每个店铺的令牌桶起始含有 40 个令牌。
  • 令牌消耗:每发出一个请求,将消耗一个令牌。
  • 令牌恢复:当令牌数量少于 40 个时,系统以每秒 2 个令牌的速率自动补充,直至令牌桶再次满额。
  • 处理超限请求:若令牌桶中令牌耗尽至 0 个,再有新的请求到来时,则返回状态码 429(请求过多),以提示速率限制已达上限。

响应头信息

开发者可通过响应头中的 X-Genstore-Shop-Api-Rate-Limit 字段检查当前对某店铺的请求次数:

bash
X-Genstore-Shop-Api-Rate-Limit: 30/40

在此示例中,已发送 30 个请求,令牌桶中剩余 10 个令牌(40-30=10)。如果不进行任何新的请求,令牌桶将在足够的时间内逐渐补满,直到恢复到满容量状态(40/40)。假设恢复速率为每秒 2 个令牌,那么从 10/40 恢复到 40/40 需要大约 15 秒的时间。