官方首页 - 域名服务 - 深圳服务器 - H5建站系统 - 服务器租用
互联时空Whois
 
高并发系统中的限流技术是什么?限流技术的实现-深圳市互联时空
高并发系统中的限流技术是什么?限流技术的实现-深圳市互联时空
深圳市互联时空科技有限公司是专业的数据中心服务商、Ai智能云服务销售服务商,长期提供数据中心托管服务,私有云,互联网解决方案,大数据,云计算,互联网增值服务。针对工信委大力实施“万企业上云”计划,互联时空以我所能,为你而+,推出上云特惠,核心云计算产品降幅达50%,华为云产品全线8折,领取政府资助创新券,只要支付官网的50%!助力5G时代,50M独享服务器(上下行对等)只要8000元1年!也欢迎来聊右侧qq、微信!


在开发高并发系统时,有很多手段来保护系统,如缓存、降级和限流等。缓存目的是提升系统访问速度和增大系统处理能力,可谓是抗高并发流量的银弹。而降级是当服务出问题或者影响到核心流程的性能,需要暂时屏蔽掉,待高峰过去或者问题解决后再打开的场景。而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、 频繁的复杂查询(评论的最后几页)等。因此,需有一种手段来限制这些场景下的并发/请求量,这种手段就是限流。
 
高并发系统中的限流技术是什么?限流技术的实现-深圳市互联时空
 
限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页或告知资源没有了)、排队或等待(比如秒杀、评论、下单)、 降级(返回兜底数据或默认数据,如商品详情页库存默认有货)。在压测时我们能找出每个系统的处理峰值,然后通过设定峰值阈值,来防止当系统过载时,通过拒绝处理过载的请求来保障系统可用。另外,也应根据系统的吞吐量、响应时间、可用率来动态调整限流阈值。
 
一般开发高并发系统常见的限流有:限制总并发数(比如数据库连接池、线程池)、限制瞬时并发数(如Nginx的limit_ conn 模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(如Guava的RateLimiter、Nginx 的limit _req 模块,用来限制每秒的平均速率),以及限制远程接口调用速率、限制MQ的消费速率等。另外,还可以根据网络连接数、网络流量、CPU或内存负载等来限流。
 
先有缓存这个银弹,后有限流来应对618、双11高并发流量,在处理高并发问题上可以说是如虎添翼,不用担心瞬间流量导致系统挂掉或雪崩,最终做到有损服务而不是不服务。限流需要评估好,不可乱用,否则正常流量会出现一.些奇怪的问题,而导致用户抱怨。
 
在实际应用时,也不要太纠结算法问题,因为- .些限流算法实现是一样的, 只是描述不一样。具体使用哪种限流技术,还是要根据实际场景来选择,不要一味去找最佳模式,白猫黑猫能解决问题的就是好猫。
 
因在实际工作中遇到过许多人来问如何进行限流,因此本文会详细介绍各种限流手段。接下来,我们从限流算法、应用级限流、分布式限流、接入层限流来详细学习限流技术手段。