首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于跟踪API信用的体系结构?

问用于跟踪API信用的体系结构?
EN

Stack Overflow用户
提问于 2020-11-18 09:09:35
回答 1查看 192关注 0票数 0

我有一个用户表,其中有一个api键列和总学分/用过的学分列。

用户获得一个API密钥,使用该密钥,他们可以使用我的API,但只有在used credits<=total credits的情况下。

因为,这是一个API,所以我可能很容易每秒处理数十个请求。这样就排除了在某种API中间件中每次调用时直接从DB中读取/写入数据的可能性。

那么,正确的方法是什么呢?

  • 是否应该尝试将api-key:remaining credits存储为redis中的键值对,并在每个API调用中使用它?如果有多个服务器节点,并且一个节点从redis读取一个信用并开始执行API调用,那么会发生什么情况?但是在中间,另一个节点将剩余的信用设置为零?(即,奇怪的并发边缘情况)

通常,我需要该解决方案具有高度的可伸缩性,并且支持高并发性(每个实例>100 reqs/sec,并且说>100 month调用/月)。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-11-18 09:33:19

  • 使用Redis存储API密钥。你不需要在这里设定数量。
  • 使用Apache或类似的东西接收客户事务:借方或信用
  • 使用最终股票表作为“客户的银行帐户”,此表将从消息代理处接收所有借方和信用交易的总和。计算、发送所请求的关于资金不足的信用或消息给客户。

差不多吧。您也可以按键限制事务处理数秒。但这是可选的。

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

https://stackoverflow.com/questions/64890023

复制
相关文章

相似问题

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