# redislience4j-spring-boot-starter **Repository Path**: git4chen/redislience4j-spring-boot-starter ## Basic Information - **Project Name**: redislience4j-spring-boot-starter - **Description**: 基于Resilience4j的RateLimiter实现的限流过滤器。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-01-14 - **Last Updated**: 2025-01-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: deprecated ## README 基于Resilience4j的RateLimiter实现的限流过滤器。 实现原理: 1. 每次请求都会解析key,并创建RateLimiter对象计算是否满足限流条件; 2. RateLimiter对象首次请求会创建,并缓存到caffeine缓存,RateLimiter请求在一段时间内未访问,就会被过期删除。 仅限单节点GateWay, 不支持网关集群, 集群网关请使用SpringCloud官方的Redis RateLimiter 使用说明:参考官方Redis RateLimiter https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-redis-ratelimiter 配置示例&参数说明: ``` spring.cloud.gateway: default-filters: - name: RequestRateLimiter args: rate-limiter: "#{@resilience4JRateLimiter}" key-resolver: "#{@userKeyResolver}" # 限流数, 默认50 resilience4j-rate-limiter.limitForPeriod: 50 # 限流周期, 默认500纳秒 resilience4j-rate-limiter.limitRefreshPeriod: 500N # 等待超时时间, 默认5秒 resilience4j-rate-limiter.timeoutDuration: 5S resilience4j.ratelimiter: # 设置caffeine缓存配置 cache: # 初始容量 initialCapacity: 128 # 最大容量 maximumSize: 1024 # 访问后过期时长,单位:分钟 expireAfterAccess: 1 # 针对不同routeId自定义配置 configs: # 指定routeId xxx: # 限流数, 默认50 limitForPeriod: 50 # 限流周期, 默认500纳秒 limitRefreshPeriod: # 等待超时时间, 默认5秒 timeoutDuration: ```