谈限流时,如果只会背固定窗口和令牌桶,回答通常还不够完整。真正有价值的是说清楚限流为什么做、算法怎么选、以及应该落在哪一层。
先看限流到底在保护什么
有些限流是为了保护下游依赖,有些是为了控制热点接口,有些则是为了给核心链路留资源。目标不同,阈值和策略也不会一样。
算法要和场景一起讲
固定窗口实现简单但容易出现临界突刺,滑动窗口更平滑,漏桶强调匀速处理,令牌桶更适合允许短时突发。把算法和业务节奏绑定着讲,答案会更实用。
别忽略限流落点
网关层限流适合做统一入口保护,应用层限流适合做接口级和业务级控制,缓存或消息层也可能承担配额统计。不同层的目标和粒度并不一样。
限流之后还要考虑用户体验
被限流后是直接拒绝、排队等待还是降级返回,都需要提前设计。只会挡请求,不代表方案完整。
结论
限流这件事,先讲保护目标,再讲算法取舍和系统落点,整体才算真正说到位。
正文完




