一,RateLimiter(限流器)模块总体介绍
Resilience4j的RateLimiter主要由5个部分组成:管理限流器对象的容器、限流器的相关配置、限流器可监控的指标、限流器行为变化产生的事件以及限流器本身。
它们之间的基本调用关系如下图:
RateLimiterRegistry、RateLimiterConfig和RateLimiterEvent的实现逻辑与熔断器对应的类一样,前面的几篇文章分析过,这里就不再研究了。我们重点分析Resilience4j的限流器是如何实现限流的。
二,RateLimiter(限流器)模块采用的限流算法
我们一般会根据不同的业务场景采用不同的限流算法,经常使用的限流算法有令牌桶限流算法、漏桶限流算法和固定并发数限流算法。令牌桶限流和漏桶限流都属于平滑限流,而固定并发数限流属于粗暴限流。
Resilience4j的限流器RateLimiter实现了令牌桶限流和固定并发数限流。
1,令牌桶限流