阿里开源的限流熔断组件,底层统计采用滑动窗口算法,限流方面有两种使用方式:API调用和注解,内部采插槽链来统计和执行校验规则。 通过为方法增加注解@SentinelResource(String name)或者手动调用SphU.entry(String name)方法开启流控。 使用API手动调用流控示例: @Test public void testRule() { // 配置规则. initFlowRu...
每次进行数据统计的时候,只需要统计这 个窗口内每个时间刻度的访问量就可以了。 Spring Cloud 中的熔断框架 Hystrix,以及 Spring Cloud Alibaba 中的Sentinel 都采用滑动窗口来做数据统计。 3、漏桶限流算法。 ENTER TITLE 它是一种恒定速率的限流算法,不管请求量是多少,服务端的处理效率是恒定的。基于 MQ 来实现的...
本文介绍几种常见的限流算法:固定时间窗口算法、滑动时间窗口算法、滑动日志算法、 漏桶算法和令牌桶算法。