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

SnowJena

What

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

Noun

限流

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

降级

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

塑形

一般咱们遇到的流量具备随机性、不规则、不受控的特色,但系统的处理能力每每是有限的,咱们须要根据系统的处理能力对流量进行塑形,即规则化,从而根据咱们的须要来处理流量。本项目本地限流具有流量塑性功能,严格控制系统的处理时间间隔。框架

负载保护

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

Preview

About

Blog:https://www.cnblogs.com/yueshutong/函数

Email:yster@foxmail.com设计

Github:https://github.com/yueshutong/SnowJenablog

Gitee:https://gitee.com/zyzpp/SnowJena资源

交流QQ群:781927207get

若是帮助到你了,请不吝赞扬!谢谢!

相关文章
相关标签/搜索