请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

在实际工作中碰到的需求,想请教一下。

老师,我在之前的实际开发工作中,碰到这样的一个需求:就是对方是一个银联的入账系统,向外开放一个入账的接口,由于它对并发访问的次数每秒只能对这个接口有200次调用的限制,超过就会调用失败,异常返回。所以我就得限定在每秒对这个接口请求限定在200次,这个实现,请提供给我一个思路,谢谢您。

正在回答 回答被采纳积分+3

插入代码

1回答

好帮手慕小蓝 2025-02-08 15:08:08

可以使用令牌桶算法:

桶的容量为200,表示每秒最多允许200个请求。令牌以固定速率(每秒200个)添加到桶中。每个请求需要从桶中获取一个令牌,如果桶中没有令牌,则拒绝请求。

实现逻辑:

使用一个计数器表示当前桶中的令牌数量。使用一个定时任务每秒向桶中添加200个令牌。

每次请求时,检查桶中是否有令牌:

如果有令牌,则消耗一个令牌并允许请求。如果没有令牌,则拒绝请求。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

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

帮助反馈 APP下载

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

公众号

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