spring cloud gateway限流操作--基于redis的原生限流

一定要注意版本一定要注意版本
目前G版本spring cloud,2.1.x版本spring boot 不能支持spring gateway原生redis限流,会在redis中没有key值,导致限流无效

pom.xml

        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-gatewayartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-data-redis-reactiveartifactId>
        dependency>

application.yml

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
      routes:
      - id: user-service
        # uri以lb://开头(lb代表从注册中心获取服务),后面接的就是需要转发到的服务名称
        uri: lb://user
        predicates:
        # 匹配路径 所以实际访问路径为user/hi
        - Path=/user/**
        filters:
        # StripPrefix=1表示二级url路径转发
        - StripPrefix=1
        - name: RequestRateLimiter
          args:
            redis-rate-limiter.replenishRate: 10
            redis-rate-limiter.burstCapacity: 20
            key-resolver: '#{@hostAddrKeyResolver}'

其他的限流就可以看这个博客。

https://www.cnblogs.com/forezp/p/10140316.html

你可能感兴趣的:(java,spring,cloud)