Redis工具集之限流

  • path: 表示需要拦截匹配哪些 URL,假如说我需要对redis开头(/redis/*)的请求url,使用IP限流,那么对于所有以 redis开头的url都会被以IP维度限流了。

    那如果我还配置了一个 /** 的限流配置,即如下配置:

     redis:
       util:
           limit:
             configs:
               - path: "/**"      
                 replenishRate: 1      
                 burstCapacity: 10      
                 keyResolver: "apiKeyResolver"  --- 限流维度
    
               - path: "/redis/*"     --- 拦截请求以/redis/*开头的这些url
                 replenishRate: 1     --- 每秒中增加的令牌数量
                 burstCapacity: 5     --- 桶容量
                 keyResolver: "ipKeyResolver"  --- 限流维度
             enable: true
    

    对于这种情况,如果请求 url:/redis/limit,该被哪个限流方案生效呢?答案是,生效的是 ipKeyResolver, 因为 url:/redis/limit 最匹配path: "/redis/*";