【高并发】一分钟了解什么是限流
大家好,我是冰河~~
在开发高并发系统时,有很多手段可以保护系统,如:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统处理能力。降级是当服务出问题或影响到核心流程的性能,需要暂时屏蔽掉,待高峰过去或者问题解决后再打开。有些场景不适合用缓存或降级,比如稀缺资源(秒杀、抢购)、写服务(评论、下单)、频繁的复杂查询(评论的最后几页)等,这些场景可以用限流限制并发/请求量。
限流的目的是通过对并发访问/请求进行限速或者一个事件窗口内的请求进行限速来保护系统,一旦达到限制速率可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。
一般开发高并发系统常见的限流有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如Nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(如Guava的RateLimiter、Nginx的limit_req模块,用来限制每秒的平均速率),以及限制远程接口调用速率、限制MQ消费速率等。还可以根据网络连接数、网络流量、CPU或内存负载等来限流。
后记:
记住:你比别人强的地方,不是你做过多少年的CRUD工作,而是你比别人掌握了更多深入的技能。不要总停留在CRUD的表面工作,理解并掌握底层原理并熟悉源码实现,并形成自己的抽象思维能力,做到灵活运用,才是你突破瓶颈,脱颖而出的重要方向!
你在刷抖音,玩游戏的时候,别人都在这里学习,成长,提升,人与人最大的差距其实就是思维。你可能不信,优秀的人,总是在一起。。
好了,如果文章对你有点帮助,记得给冰河一键三连哦,欢迎将文章转发给更多的小伙伴,冰河将不胜感激~~
写在最后
如果你想进大厂,想升职加薪,或者对自己现有的工作比较迷茫,都可以私信我交流,希望我的一些经历能够帮助到大家~~
好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,我是冰河,我们下期见~~
- 点赞
- 收藏
- 关注作者
评论(0)