首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现大规模API使用定额系统

实现大规模API使用定额系统
EN

Stack Overflow用户
提问于 2012-10-10 17:24:40
回答 1查看 1.2K关注 0票数 1

从高层次的角度来看,我如何实现API使用配额系统?

特别是,它必须满足下列要求:

  • 实时
  • 快速,而不是显着地减慢API。
  • 如果使用内存中的缓存,则需要在突然关闭后恢复(有利于API客户端的配额精度损失很小)。
  • 速率限制(DOS保护)
  • 结垢井

是否有任何普遍接受的架构模式/算法来实现这样的系统?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-16 04:22:36

您的API有可用的数据库吗?如果是这样的话,只需在那里存储一个计数器为每个注册帐户,您想要测量或油门。

当有人登录时,使用像AOP这样的技术来确保每个API调用都通过您的节流算法运行,这应该很简单。24小时节流系统的伪代码:

代码语言:javascript
复制
read access_count from DB
access_count++       
if access_count > limit then
   respond with something like 429 - Too Many Requests
else
   store access_count in DB
end

以上假设您有一个批处理作业,它每晚遍历DB,并为第二天的流量将所有访问计数器清除回0。

它的可伸缩性将取决于您的DB选择。任何DB都可以处理这个问题,特别是更新的NoSQL/NewSQL。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12824927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档