程序员如何抗住双11高并发流量

235人已阅读 2021-09-01 16:51:22
导读 在双11过后的小职,从断臂维纳斯化身为八臂哪吒,快递拆到手软,痛并快乐着,相信不少小伙伴的战斗力不比我弱,看看这份双11的数据,11月成交 100 亿/1分36秒,比2018快了30秒,同比2017快了90秒。在双11狂欢抢购的背后,也有一个许多程序员关心的问题,就是如何抗住双 11 高并发流量?接下来小职带大家一起看看限流降级技术。
IT培训

新闻详情

2021-09-01 16:51:22
  在双11过后的小职,从断臂维纳斯化身为八臂哪吒,快递拆到手软,痛并快乐着,相信不少小伙伴的战斗力不比我弱,看看这份双11的数据,11月成交  100 亿/1分36秒,比2018快了30秒,同比2017快了90秒。在双11狂欢抢购的背后,也有一个许多程序员关心的问题,就是如何抗住双 11 高并发流量?接下来小职带大家一起看看限流降级技术。
程序员如何抗住双11高并发流量
  服务等级协议
  我们常说的N个9,就是对SLA的一个描述。SLA全称是Service Level Agreement,翻译为服务水平协议,也称服务等级协议,它表明了公有云提供服务的等级以及质量。
  例如阿里云对外承诺的就是一个服务周期内集群服务可用性不低于99.99%,如果低于这个标准,云服务 企业就需要赔偿客户的损失。
  做到4个9够好了吗
  对互联网 企业来说,SLA就是网站或者API服务可用性的一个*,9越多代表全年服务可用时间越长服务更可靠,4个9的服务可用性,听起来已经很高了,但对于实际的业务场景,这个值可能并不够。
  我们来做一个简单的计算,假设一个核心链路依赖20个服务,强依赖同时没有配置任何降级,并且这20个服务的可用性达到4个9,也就是99.99%。
  那这个核心链路的可用性只有99.99的20次方=99.8%,如果有10亿次请求则有3,000,000次的失败请求,理想状况下,每年还是有17小时服务不可用。
  微服务的雪崩效应
  除了对服务可用性的追求,微服务架构一个绕不过去的问题就是服务雪崩。
  在一个调用链路上,微服务架构各个服务之间组成了一个松散的整体,牵一发而动全身,服务雪崩是一个多级传导的过程。
  首先是某个服务提供者不可用,由于大量超时等待,继而导致服务调用者不可用,并且在整个链路上传导,继而导致系统瘫痪。
  限流
  限流目的是通过对并发访问/请求进行限速或者一个事件窗口内的请求进行限速,来保护系统。
  一般高并发系统常见限流有:
  1、限制总并发数(如数据库连接池、线程池)
  2、瞬时并发数(如Nginx的limit_conn模块)
  3、限制远程接口调用速率,MQ消费
  限流算法
  主要有令牌桶、漏桶
  令牌桶算法
  是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌
  1、假设限制为2r/s,则按照500ms的固定速率网桶中添加令牌
  2、桶中最多存放b个令牌,当桶满时,新添加令牌被丢弃或拒绝,当一个n个字节大小数据*到达,将从桶中删除n个令牌,接着数据*被发送到网络上
  3、如果桶中令牌不足n个,则不会删除令牌,且该数据*将被限流
  漏桶算法
  漏桶作为计量工具,可以用于流量*(Traffic Shaping)和流量控制(Traffic Policing)。
  1、一个固定容量的漏桶,按照常量固定速率流出水滴
  2、如果桶是空的,则不需要流出水滴
  可以以任意速率流入水滴到桶里
  3、如果流入水超出了桶的容量,则流入的水滴溢出了(被丢弃),而漏桶容量是不变的
  两者比较
  令牌桶是展昭固定速率王桶中添加令牌,请求是否被处理需要看桶中令牌是否足够,当令牌数减为0时,则拒绝新的请求。
  漏桶则是按照固定速率流出请求,流入请求速率任意,当流入请求数累计到漏桶容量时,则新流入请求被拒绝。
  限流降级怎么做
  如同上面我们分析的,在大规模微服务架构的场景下,避免服务出现雪崩,要减少停机时间,要尽可能的提高服务可用性。
  提高服务可用性,可以从很多方向入手,比如缓存、池化、异步化、负载均衡、队列和降级熔断等手段。
  缓存以及队列等手段,增加系统的容量。限流和降级则是关心在到达系统瓶颈时系统的响应,更看重稳定性。
  缓存和异步等提高系统的战力,限流降级关注的是防御。限流和降级,具体实施方法可以归纳为八字箴言,分别是限流,降级,熔断和隔离。
  使用RateLimiter实现限流
  Google开源工具*Guava提供了限流工具类RateLimiter,该类基于令牌桶算法实现流量限制,使用方便。
  RateLimiter使用的是令牌桶的流控算法,RateLimiter会按照一定的频率往桶里扔令牌,线程拿到令牌才能执行。
上一篇: Web前端开发应该必备的编码原则 下一篇: 那些常用的设计模式汇总

相关文章

推荐课程

查看全部课程
成都职坐标

成都职坐标

网课校区

查看全部校区 进入官方主页