MaSks要加油丫
发布于 2024-02-18 / 48 阅读
1
1

什么是服务限流?

说到“限流”这个词,我想大家肯定并不陌生,在实际生活中肯定也有经历过“被限流”的情况,只是大家浑然不觉,接下来就让我们回顾下那些深藏不漏的限流手段。

怎么样,熟不熟悉?当你怀着迫切的心情想要购买一张前往 superIdol 演唱会的门票时,大麦可没那么容易让你得逞。大麦网抢票 “当前人数过多” ,本质是 服务通过限流机制主动拒绝超出承载能力的请求,背后是一套平衡 “用户体验” 和 “系统稳定” 的逻辑。该抢票场景有个典型特点:瞬时请求量远超系统承载上限(比如某热门演唱会开票瞬间,请求量可能是平时的 1000倍以上)。
此时系统若不做限制,会直接面临:服务器 CPU、内存占满,导致所有用户都无法访问(“一锅端”);数据库查询 / 订单创建操作拥堵,出现 “超卖”“订单卡死” 等严重问题;带宽被耗尽,后续正常请求也无法进入等等伤害我们费劲千辛万苦才搭起来的服务。

类似的情况还有。

 

没错,就是坑死你没商量的验证码!

大家肯定发现过这样一种情况,在春运抢票的时候,当你面对这么一堆验证码图片,不管你怎么选,即使你用毕生所学选出了正确答案,提交后依然都会被告知你选错了。要么就是让你面对一堆鬼都看不出是什么东西的图片。不要怀疑自己的智商,其实,这就是网站的一种别样的限流措施。在拷问用户智商的同时,通过这种“故意”刁难的手段,光明正大地限制访问流量,从而大幅降低系统的访问压力,真不得不敬佩产品经理的智(良)慧(心)。

看了以上例子,聪明的你应该也发现了,Java 中的服务限流,简单说就是给服务 “装个阀门”,控制单位时间内处理的请求数量,防止服务因为请求太多而崩溃


评论