从高层次的角度来看,我如何实现API使用配额系统?
特别是,它必须满足下列要求:
是否有任何普遍接受的架构模式/算法来实现这样的系统?
发布于 2012-10-16 04:22:36
您的API有可用的数据库吗?如果是这样的话,只需在那里存储一个计数器为每个注册帐户,您想要测量或油门。
当有人登录时,使用像AOP这样的技术来确保每个API调用都通过您的节流算法运行,这应该很简单。24小时节流系统的伪代码:
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。
https://stackoverflow.com/questions/12824927
复制相似问题