1.一种分布式集群限流系统,其特征在于,包括:
2.根据权利要求1所述的分布式集群限流系统,其特征在于,所述节点统计模块部署在集群中的每个节点上,节点统计模块在进行计数数量的累加时,计数数量的累加和成功响应为一个事务,若响应没成功,则请求中的周期总计数数量不累加。
3.根据权利要求1所述的分布式集群限流系统,其特征在于,匹配限流规则时,当第一次接收到匹配限流规则的请求时,进行初始化,设置上周期本节点总请求数,本周期本节点总请求数,本周期本节点计数缓存值都为0;若非第一次接收到匹配限流规则的请求,且本周期已到,则设置上周期本节点总请求数为当前本周期节点总请求数,更新本周期本节点总请求数,本周期本节点计数缓存值为0。
4.根据权利要求3所述的分布式集群限流系统,其特征在于,节点转发模块通过本地计数缓存判断是否需要向节点统计模块发起请求时,匹配限流规则的本周期本节点总请求数加1,若节点计数缓存小于或等于零时,判断本地是否集群总计数超过集群限流总值,若超过,则拒绝请求。若没超过,则放行请求;
5.根据权利要求4所述的分布式集群限流系统,其特征在于,所述节点转发模块中计算节点统计模块累加的计数的计算规则为:节点预测出本周期内至少有多少个符合限流规则的请求访问本节点,再加上本节点计数缓存小于零部分;预测时的预测规则为:比较限流规则的上周期总请求数和本周期当前总请求数,取出2者间的较大值,将这个值除以配置值,取整后和1取最大值;其中,配置值默认为10。
6.根据权利要求5所述的分布式集群限流系统,其特征在于,所述节点转发模块还用于查询同步装置中集群所有节点ip信息,对限流规则进行一致性hash计算,计算出所述限流规则的统计对应在集群中某一台节点的节点统计模块上,向一致性hash选中的集群中某一节点的节点统计模块发起请求,附带上本周期和待请求计数的信息。
7.根据权利要求6所述的分布式集群限流系统,其特征在于,所述节点转发模块还用于获得节点统计模块响应的本周期当前匹配限流规则的集群总计数,将集群总计数和限流规则集群限流总值对比。
8.根据权利要求7所述的分布式集群限流系统,其特征在于,将集群总计数和限流规则集群限流总值对比时,若小于集群限流总值,则更新节点计数缓存,更新值为:(当前节点计数缓存+向节点统计模块请求的计数);若超过集群限流总值,则更新值为:max(0,(当前节点计数缓存+(向节点统计模块请求的计数-(总计数-限流规则集群限流总值)))),并设置节点本地,集群总计数超过集群限流总值;当本周期后续请求到达本节点,且本节点计数缓存小于或等于零时,拒绝请求。
9.根据权利要求1所述的分布式集群限流系统,其特征在于,所述节点转发模块还用于保持与节点统计模块的长连接,每次只会有一个请求存在;发起统计请求后,等待响应或超时后才能发起下一个请求;在通讯过程中,继续减扣本地缓存计数,收到节点统计模块响应后更新本地缓存计数。
10.一种分布式集群限流方法,其特征在于,基于权利要求1-7任一项所述的分布式集群限流系统执行分布式集群限流操作,该方法包括以下步骤: