解决亚马逊调用频率限制问题的sdk框架

本文介绍了一种解决亚马逊AWS服务调用频率限制的SDK框架,该框架利用线程池和频率控制中心,对同步和异步调用进行管理,遇到频率限制时进行重试。通过封装请求和异常处理,确保在多项目调用时能有效避免Request is throttled的异常。项目已开源在GitHub,欢迎贡献和反馈。
摘要由CSDN通过智能技术生成

先给急着用的人:项目地址:https://github.com/zhuzhenke/invoke-limit-api

针对调用亚马逊AWS服务,对于亚马逊针对每个接口有不同的频率调用限制,设计了这个对调用者可以同步和异步调用的sdk框架,把因为频率限制的错误进行重试的封装,调用调用者处理因频率限制出现的错误。

这里主要基于xMemcachedClient开源项目的一些设计优点,结合现有业务难点设计的基于线程池封装的sdk。



amazonRequest是一个正常的亚马逊请求,这个请求如果不走上面的框架调用,在一定时间内超过亚马逊AWS关于当前API调用量的话,就会报Request is throttled之类的异常,那么对于一个部门来说,如果是多个项目都会调用接口,且没有统一合理控制的话,那么这种情况肯定是会经常发生的。下面详细讲,如果使用上图的架构设计,解决这样的问题。

首先我们建立了一个频率统一控制中心的项目,这个跟sdk封装是没有关系的,但是sdk在真正发出请求时,需要对于amazonRequest,需要获取当前请求的执行时间,有可能是马上就能执行,有可能是还需要等几秒才能执行,因为可能是其他业务线的请求先来了好几个,占用了这个用户的这个请求。获取到amazonRequest的执行时间,封装成RequestCommand,同时用CountDownLatch来控

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值