Muh*_*mer 5 architecture throttling api-design node.js
对于小型应用程序来说,它们没有问题。
但对于有流量的应用程序,您很容易就会达到限制。
Http 协议是 req-res 驱动的。仅仅因为您的后端受到限制,您就迫不及待地发送响应,直到速率限制允许您恢复进行 api 调用。
你做什么工作?
我可以想到几种场景:
等待它:虽然它很糟糕,但有时很容易修复,因为您不需要做任何事情。
将其排队:与仅进行 api 调用相比,这需要大量工作。这要求首先将其存储在数据库中,然后让后台任务通过数据库并执行任务。用户还会被告知“正在处理”而不是“已完成”
使用大量 api:非常 hacky...并且管理起来很麻烦。假设您正在使用亚马逊,现在您必须创建、验证、确认 10 个帐户。甚至对于需要用域名进行验证的地方也是不可能的。因为亚马逊会知道帐户 abc 已经拥有它。
我认为这取决于您想要调用哪个 API 以及调用什么数据。
例如,Facebook 将其 API 调用限制为每个用户每小时 200 个请求。因此,如果您的应用程序不断增长,并且您正在正确使用其 OAuth 实现,那么您不应受到此处的限制。
现在,您需要什么数据?您真的需要拨打所有这些电话吗?您调用的信息是否可以存储在您的任何服务器上?
假设您需要在网站上显示 Instagram feed。因此,根据每位访客的请求,您可以访问 Instagram 获取所需的照片。当您的应用程序增长时,您就会达到 API 限制,因为您的访问者数量超出了 Instagram API 允许的数量。在这种情况下,您绝对应该每小时在服务器上存储一次数据,并让您的用户访问您的数据库而不是 Instagram 的数据库。
现在假设您需要每个用户的每个请求的特定信息。难道不能让该用户处理他与 API 的连接吗?要么通过实现 API 的 OAuth 2 流程,要么通过询问用户他们的 API 信息(我认为不太安全......)?
最后,如果您确实无法改变现在的工作方式,那么除了您在此处列出的选项之外,我没有看到任何其他选项。
编辑:最后,正如 @Eric Stein 在他的评论中所说,一些 API 允许您通过付费来提高 API 限制(很多 SaaS 都这样做),因此,如果您的应用程序增长,您应该负担得起这些服务的费用(它们正在为您创造价值,回报他们是公平的)
| 归档时间: |
|
| 查看次数: |
11270 次 |
| 最近记录: |