API 关闭时请求优先级

Request prioritization when an API is down

想象一个 API 有一个名为 /valueableData 的端点。服务器明确表示API的限制是总共500requests/s,每人20requests/s。此服务器不检查您的 IP,因此我可以使用 500 个正常工作的代理制作 500 request/s 而无需 API 离线。现在想象一下,A 发送 1000 requests/s,B 发送 20 requests/s,这导致达到 500 的限制并且 API 下线。一旦 API 重新上线,A 每秒返回多少有效答案,B 返回多少有效答案? server/API 是如何处理的? A 是否每秒返回 480 个有效答案而 B 为 20 个?还是 A 得到了 500 的最大值 answers/s?

这取决于协议。

通常用于 REST 的 HTTP 本身是无状态和客户端启动的,因此不符合要求。

您的方案需要一个协议:

  1. 知道客户是谁are/were
  2. 重新上线后无需客户端参与即可推送响应
  3. 可以优先响应客户请求

我想这样的协议存在或可以使用 WebSocket 并将状态存储在数据库中来实现。