如果平时系统的访问量只有一万,而最大承受限制为五万,在秒杀时刻的瞬间,访问量突然增加到100W,此事系统一定会因访问量过大而宕机,此时就应该设计一个限流策略,使服务器能接收和处理的请求减少。
秒杀限流策略的目的:在系统流量突增的情况下保证系统的稳定性
限流总策略——多层限流
第一层:合法性限流
所谓合法性限流就是判断请求是否合法,例如:同一用户的频繁多次刷单请求和机器人刷单就是非法请求
限流策略就是验证码和统计IP黑名单
第二层:网络负载限流
网络负载限流,就是利用服务器集群和网络OSI七层协议进行动态限流,将用户请求进行负载分担。
常见的网络负载限流主要在第四层和第七层,第七层应用层一般采用Nginx服务器,而第四层传输层则通常采用LVS。
LVS简介
LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。
Nginx服务器:动静分离、负载均衡
级联负载:就是综合网络七层所有能用到的负载条件和策略。
第三层:服务限流
服务限流可以说是最后一层限流,但是也是做常用和最重要的限流主要限流策略为:
Tomact搭建集群并设置最大连接数
使用特定算法
设置mq消息队列
Nginx做负载均衡、动静分离
缓存
(1