【技术实现步骤摘要】
一种基于注册中心的分布式限流方法、设备及存储介质
[0001]本专利技术涉及微服务
,具体涉及一种基于注册中心的分布式限流方法、设备及存储介质。
技术介绍
[0002]随着互联网技术的日益更新,在大数据量高并发访问时,经常会出现服务或者接口流量暴涨,为了更好地保证整个微服务环境不被大流量冲垮而引发连锁反应导致整个系统崩溃,最常用的手段之一就是限流。当请求达到一定的并发或速率时,就让超过并发或速率的请求等待、排队、降级、拒绝服务等。
[0003]如公开号为CN110276182A的专利技术专利公开了一种API分布式限流的控制方法,将接口及用户级访问限流规则按照限流频次分别配置到数据库中;在服务端收到用户发送的API请求后,对API参数进行签名校验;校验通过后,根据API参数中的用户标识key,在限流组件中通过Realm实现查询用户与下单接口对应的限流策略;再通过集群Redis lua脚本,获取Redis集群中该用户级和接口级限流的令牌;判断本次接口调用是否符合该用户的接口权限及限流。该专利技术虽然解决了现有技术中 ...
【技术保护点】
【技术特征摘要】
1.一种基于注册中心的分布式限流方法,其特征在于,包括以下步骤:S1、对需要限流的接口通过DubboService注解的方式注入到Zookeeper中;S2、获取配置文件中接口的限流总额;S3、实时监测Zookeeper中所有节点信息,当Zookeeper中单个节点信息发生变化时,重新计算单个节点的限流配额;S4、通过漏桶算法判定单个节点的限流配额是否需要限流,如需要限流,则执行限流措施,否则不执行限流措施。2.根据权利要求1所述的一种基于注册中心的分布式限流方法,其特征在于,在步骤S3中,重新计算单个节点的限流配额的步骤包括:S31、当Zookeeper中单个节点信息发生变化时,通过getCurrentData方法获取到当前Zookeeper中所有单个节点信息;S32、将所有单个节点信息以Clusters的格式存放到本地缓存中;S33、通过getServerAmount方法获取存放在本地缓存中的服务节点数量;S34、根据配置文件中接口的限流总额除以服务节点数量得到单个节点的限流配额。3.根据权利要求1所述的一种基于注册中心的分布式限流方法,其特征在于,在步骤S4中,通过漏桶算法判定单个节点的限流配额是否需要限流的步骤包括:S41、判断当前桶中水量water是否为0,若为0,则不需要限流;并将上一次漏水时间leakTimeStamp设为当前时间currentTimeMillis,若不为0则执行步骤S42;上一次漏水时间leakTimeStamp和当前时间currentTimeMillis均以毫秒计;S4...
【专利技术属性】
技术研发人员:周鑫,
申请(专利权)人:重庆长安汽车股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。