核心接口RequestLimiter,声明了一些接口方法
工厂类做了一些初始化工作
1.初始化单个限流器实例
2.初始化一个限流器组
3.初始化一个集群限流器组
4.初始化一个多维度限流器featureRequestLimiter
核心接口为requestLimiter
先看下一个实现SingleRequestLimiter
1.首先判断属性如果不是激活的,就直接返回true
2.分别从本地变量获取oldRate和从属性文件中获取newRate,如果两者不等,就更新成newRate
3.从属性中获取限流策略strategy
4.从属性中获取超时时间timeout
5.如果尝试获取成功,就下发对应的事件,返回true,如果尝试不成功,也下发事件,返回false
1.如果尝试获取成功,就返回false,说明不需要降级
2.如果尝试获取不成功,就从属性文件中获取降级策略,策略是降级的,就下发降级的事件,然后返回true