限流
服务系统流量多,的确是一件好事,但是如果过载,把系统打挂了,那大家都要吃席了。
所以,在各种大促活动之前,要对系统进行压测,评估整个系统的峰值QPS,要做一些限流的设置,超过一定阈值,就拒绝处理或者延后处理,避免把系统打挂的情况出现。
限流和熔断有什么区别?
限流发生在流量进来之前,超过的流量进行限制。
熔断是一种应对故障的机制,发生在流量进来之后,如果系统发生故障或者异常,熔断会自动切断请求,防止故障进一步扩展,导致服务雪崩。
限流和削峰有什么区别?
削峰是对流量的平滑处理,通过缓慢地增加请求的处理速率来避免系统瞬时过载。
削峰大概就是水库,把流量储存起来,慢慢流,限流大概就是闸口,拒绝超出的流量。
限流的通用流程
那么具体限流怎么实现呢?可以概括为以下几个步骤:
限流通用流程
-
统计请求流量:记录请求的数量或速率,可以通过计数器、滑动窗口等方式进行统计。
-
判断是否超过限制:根据设定的限制条件,判断当前请求流量是否超过限制。</