api - 如何设计一个在一小时内只接受 100K 请求的移动 API
问题描述
如何设计一个在一小时内只接受 100K 请求的移动 API。如果在不到 1 小时内请求数量超过 100K,我们必须拒绝该请求。设计这样的 API 需要考虑哪些方方面面。我们不需要存储用户请求。我们的 API 必须接受或拒绝请求,这意味着它必须发送 true 或 false 作为响应。如果我们接受请求,我们必须发送 true else false。
解决方案
对于设计需要跟踪每小时请求的任何此类 api,我的意见是从 100 开始有一个请求计数器,并为每个到来的请求继续减少一个。如果时间间隔小于 60 分钟且请求计数大于 0,则还保存第一个请求的开始时间和接收新请求的时间允许请求。如果时间间隔小于 60 分钟并且计数等于 0,则拒绝请求,如果时间间隔大于 60,则重置时间和计数器。
推荐阅读
- excel - 除非特定工作表处于活动状态,否则 VBA 代码不起作用
- gemfire - Apache Geode Redis 适配器无法持久化
- python - 过滤数据框会返回“空数据框”
- java - JNDI LDAP 池连接
- flutter - 在这里将逻辑放在图标上几乎没有帮助
- javascript - window.speechSynthesis.speak(msg) 在单击按钮之前不起作用
- c# - WPF 应用程序似乎没有收到响应
- sorting - Google表格,根据单列中的唯一值对表格进行排序
- webgl - 应用置换贴图和高光贴图
- go - InvalidClientTokenId:请求中包含的安全令牌无效