高并发场景下的限流策略
高并发场景下的限流策略: 在开发高并发系统时,有很多手段来保护系统:缓存、降级、限流。 当访问量快速增长、服务可能会出现一些问题(响应超时),或者会存在非核心服务影响到核心流程的性能时, 仍然需要保证服务的可用性,即便是有损服务。所以意味着我们在设计服务的时候,需要一些手段或者关键数据进行自动降级,或者配置人工降级的开关。 缓存的目的是提升系统访问速度和增大系统处理的容量,可以说是抗高并发流量的银弹;降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉某些功能,等高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如秒杀、抢购;写服务(评论、下单)、频繁的复杂查询,因此需要一种手段来限制这些场景的并发/请求量性能调优是针对于代码本身的不规范性和系统资源的瓶颈的,当计算机的硬件资源达到瓶颈的时间已经无法调优了。高并发场景下一方面通过缓存,异步化,服务化,集群去增加整个系统的吞吐量,另一方面通过限流,降级来保护系统。 限流的作用: 在各大节假日旅游高峰期,各大旅游景点都是人满为患。所有有些景点为了避免出现踩踏事故,会采取限流措施。那在架构场景中,是不是也能这么做呢?针对这个场景,能不能够设置一个最大的流量限制,如果超过这个流量,我们就拒绝提供服务,从而使得我们的服务不会挂掉。当然,限流虽然能够保护系统不被压垮,但是对于被限流的用户,就会很不开心