为了账号安全,请及时绑定邮箱和手机立即绑定

对于外部有频率限制的接口API请求我这里有三个思路,求指导

对于外部有频率限制的接口API请求我这里有三个思路,求指导

三国纷争 2019-01-17 04:57:46
假设订单确认收货后推给远程服务器,该接口限制每分钟70次自己想了以下几种方案: 1.每次点击都会请求一次接口,等待结果返回并验证结果,问题:可能会出现超过频率限制,不好验证所有的请求是否成功,请求接口等待时间长。批量请求失败的无法重试。 2.给每个订单加一个请求成功标记,给用户操作埋点比如用户查询订单时,每次用户操作到这里就触发检查一遍上次请求是否成功,有没有成功的继续请求。优点就是对于请求失败的,可以进行重试。但如果用户不操作可能就永远不会再请求。并且频率也不好控制。如果某些原因导致太多没有请求成功的,那么一次请求太多用户等待时间也会莫名其妙变长 3.用一台服务器和Redis做异步服务队列,每次需要请求该接口时直接将请求的参数推给请求队列,再由该服务器专门去处理,好处是容易做频率限制,并且请求失败的可以重试,对用户前台体验上由于异步操作了所以等待时间减少了。 如果是查询的比如是查询该笔订单想的比较简单,就是将数据缓存进redis,设过期时间。这样不用每次查询。
查看完整描述

3 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

加一个中间状态吧,订单确认收货后加一个“等待确认”状态,然后推到mq,然后再起一个服务按照70每分钟的速率从mq拿消息推到那个接口,成功了直接该状态,失败了再次推到mq

查看完整回答
反对 回复 2019-02-12
?
DIEA

TA贡献1820条经验 获得超3个赞

搜一下限流的漏桶算法和令牌算法,具体的就不在这里解释了吧,善用搜索引擎

查看完整回答
反对 回复 2019-02-12
?
烙印99

TA贡献1829条经验 获得超13个赞

没搞懂你想要的是什么功能。是想要接口频率限制,还是想要接口必须调用成功,还是想要什么呢?

查看完整回答
反对 回复 2019-02-12
  • 3 回答
  • 0 关注
  • 1134 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号