Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

亿级流量下的分布式限流解决方案 PDF 下载


分享到:
时间:2021-07-29 11:34来源:http://www.java1234.com 作者:转载  侵权举报
亿级流量下的分布式限流解决方案 PDF 下载
失效链接处理
亿级流量下的分布式限流解决方案  PDF 下载


本站整理下载:
提取码:v3rl 
 
 
相关截图:
 
主要内容:

高并发系统限流
短时间内巨大的访问流量,我们如何让系统在处理高并发的同时还能保证自身系统的稳定性?有人会
说,增加机器就可以了,因为我的系统是分布式的,所以可以只需要增加机器就可以解决问题了。但
是,如果你通过增加机器还是不能解决这个问题怎么办呢?而且这种情况下又不能无限制的增加机器,
服务器的硬件资源始终都是有限的,在有限的资源下,我们要应对这种大流量高并发的访问,就不得不
采取一些其他的措施来保护我们的后端服务系统了,比如:缓存、异步、降级、限流、静态化等。
这里,我们先说说如何实现限流。
什么是限流?
在高并发系统中,限流通常指的是:对高并发访问或者请求进行限速或者对一个时间内的请求进行限速
来保护我们的系统,一旦达到系统的限速规则(比如系统限制的请求速度),则可以采用下面的方式来
处理这些请求。
拒绝服务(友好提示或者跳转到错误页面)。
排队或等待(比如秒杀系统)。
服务降级(返回默认的兜底数据)。
其实,就是对请求进行限速,比如10r/s,即每秒只允许10个请求,这样就限制了请求的速度。从某种
意义上说,限流,其实就是在一定频率上进行量的限制。
限流一般用来控制系统服务请求的速率,比如:天猫双十一的限流,京东618的限流,12306的抢票
等。
限流有哪些使用场景?
这里,我们来举一个例子,假设你做了一个商城系统,某个节假日的时候,突然发现提交订单的接口请
求比平时请求量突然上涨了将近50倍,没多久提交订单的接口就超时并且抛出了异常,几乎不可用了。
而且,因为订单接口超时不可用,还导致了系统其它服务出现故障。
我们该如何应对这种大流量场景呢?一种典型的处理方案就是限流。当然了,除了限流之外,还有其他
的处理方案,我们这篇文章就主要讲限流。
对稀缺资源的秒杀、抢购;
对数据库的高并发读写操作,比如提交订单,瞬间往数据库插入大量的数据;
限流可以说是处理高并发问题的利器,有了限流就可以不用担心瞬间高峰流量压垮系统服务或者服务雪
崩,最终做到有损服务而不是不服务。
使用限流同样需要注意的是:限流要评估好,测试好,否则会导致正常的访问被限流。
常见的限流算法
计数器
计数器法
限流算法中最简单粗暴的一种算法,例如,某一个接口1分钟内的请求不超过60次,我们可以在开始时
设置一个计数器,每次请求时,这个计数器的值加1,如果这个这个计数器的值大于60并且与第一次请
求的时间间隔在1分钟之内,那么说明请求过多;如果该请求与第一次请求的时间间隔大于1分钟,并且
该计数器的值还在限流范围内,那么重置该计数器。
使用计数器还可以用来限制一定时间内的总并发数,比如数据库连接池、线程池、秒杀的并发数;计数
器限流只要一定时间内的总请求数超过设定的阀值则进行限流,是一种简单粗暴的总数量限流,而不是
平均速率限流

 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐