美文网首页技术架构
基于令牌桶算法实现的分布式无锁限流框架(SnowJena)

基于令牌桶算法实现的分布式无锁限流框架(SnowJena)

作者: 95a6af369245 | 来源:发表于2019-07-29 15:55 被阅读56次

  SnowJena#

  What#

  基于令牌桶算法实现的分布式无锁限流框架,支持熔断降级,支持动态配置规则,支持可视化监控,开箱即用。

  Noun#

  限流#

  当我们设计了一个函数,准备上线,这时候这个函数会消耗一些资源,处理上限是1秒服务3000个QPS,但如果实际情况遇到高于3000的QPS该如何解决呢?本项目提供了当QPS超出某个设定的阈值,系统可以通过直接拒绝或阻塞两种方式来应对,从而起流量控制的作用。

  降级#

  接触过Spring Cloud、Service Mesh的同学,都知道熔断降级的概念。服务之间会有相互依赖关系,例如服务A做到了1秒上万个QPS,但这时候服务B并无法满足1秒上万个QPS,那么如何保证服务A在高频调用服务B时,服务B仍能正常工作呢?一种比较常见的情况是,服务A调用服务B时,服务B因无法满足高频调用出现响应时间过长的情况,导致服务A也出现响应过长的情况,进而产生连锁反应影响整个依赖链上的所有应用,这时候就需要熔断和降级的方法。本项目通过设置快速失败策略来对服务自定义进行熔断或降级。

  塑形#

  通常我们遇到的流量具有随机性、不规则、不受控的特点,但系统的处理能力往往是有限的,我们需要根据系统的处理能力对流量进行塑形,即规则化,从而根据我们的需要来处理流量。本项目本地限流具备流量塑性功能,严格控制系统的处理时间间隔。

  负载保护#

  平时系统运行都没问题,但遇到大促的时候,发现机器的load非常高,这时候对系统的负载保护就显得非常重要,以防止雪崩。本项目提供了对应的保护机制,让系统的入口流量和系统的负载达到一个平衡,保证系统在能力范围之内处理最多的请求。使系统能够处理的请求,和允许进来的请求,达到平衡。

  Preview#

相关文章

网友评论

    本文标题:基于令牌桶算法实现的分布式无锁限流框架(SnowJena)

    本文链接:https://www.haomeiwen.com/subject/acwbrctx.html