1 前言
在《微服务系列》中,我们讲过很多限流,熔断相关的知识。
老生长谈的一个话题,服务的能力终归是有限的,无论是内存、CPU、线程数都是,如果遇到突如其来的峰量请求,我们怎么友好的使用限流来进行落地,避免整个服务集群的雪崩。
峰量请求主要有两种场景:
1.1 突发高峰照成的服务雪崩
如果你的服务突然遇到持续性的、高频率的、不符合预期的突发流量。你需要检查一下服务是否有被错误调用、恶意攻击,或者下游程序逻辑问题。
这种超出预期的调用经常会造成你的服务响应延迟,请求堆积,甚至服务雪崩。而雪崩会随着调用链向上传递,导致整个服务链的崩溃,对我们的系统造成很大的隐患。
1.2 超出预期值的流量洪峰
如果你的商城或者平台搞活动(类似双11、618),但你又无法有效评估出这个峰值的具象值和持续时间,那么你的服务依然有被打垮的风险。
除非你能做到服务集群弹性伸缩(动态扩缩容)的能力,这个我在后面的云原生系列中会详细说。