工夫窗口(固定窗口)
在固定的工夫范畴内,限度申请总数,达到申请总数后服务降级
长处
能够精准管制每个时间段内的总体性能,避免服务解体
毛病
没有方法避免工夫范畴临界点突发大流量,很可能在工夫范畴交界处被大量申请间接打到降级,影响后续服务
工夫窗口(滑动窗口)
工夫范畴长短固定,此工夫范畴在整个时间轴上滑动统计,例如每分钟容许 100 个申请,在 00:00:00~00:00:30 有 40 个申请,则 00:00:31~00:01:00 容许 60 个申请,而在 00:00:31~00:01:00 有 50 个申请,则在 00:01:01~00:01:30 容许 50 个申请
长处
工夫范畴滑动进行统计,能够将残余的性能留给该时间段的后半局部,能够避免工夫临界点打崩的问题
毛病
无奈平滑管制申请流量,仅能管制时间段内申请总量,宏观来看,时间轴上的申请数量波形可能呈现较大的稳定
漏斗算法
维持一定量的申请空间,以稳固的速度解决申请,当漏斗累积的申请数量超过最大值时开始拒绝请求
长处
永远匀速解决申请,保障了服务稳定性
毛病
无奈应答突发流量,因为处理速度恒定,当大量申请到来时,用户等待时间长,用户体验差
令牌桶算法
维持一定量的令牌数量,零碎以恒定工夫生成令牌并放入桶中,用户申请到来时须要先获取令牌,获取到令牌才会解决申请
长处
相比漏斗算法,反对了突发大流量,事后生成的令牌能够在一瞬间被取走,后续再以恒定的速度解决申请,既能反对高并发场景,又能平滑管制流量,少数业务场景会采纳此计划,用户体验较好
毛病
令牌桶的数量,生成的速度须要依据以往的零碎性能以及用户习惯等教训的累积来判断