
# 限流
限流规则借鉴了Resilience4j的思想，作用在服务端，其原理为：每隔limitRefreshPeriod的时间会加入rate个新许可，就可以最多接受rate个请求，超过的将被限流，返回响应码429。
- Java Chassis的限流作用于微服务提供者，需要微服务应用集成流量控制模块，启用qps-flowcontrol-provider处理链。 配置示例如下：
  ```
  servicecomb:
    handler:
      chain:
        Provider:
          default: qps-flowcontrol-provider
  ```
  在POM中添加如下依赖：
  ```
  <dependency>
    <groupId>org.apache.servicecomb</groupId>
    <artifactId>handler-flowcontrol-qps</artifactId>
    <version>${project.version}</version>
  </dependency>
  ```
  详细说明请参考[servicecomb限流开发指南](https://servicecomb.apache.org/references/java-chassis/zh_CN/references-handlers/ratelimit.html)。
  
- Spring Cloud通过Aspect拦截RequestMappingHandlerAdapter实现了限流，集成Spring Cloud Huawei以后，默认集成了限流模块spring-cloud-starter-huawei-governance， 只需要通过配置开启具体的限流策略。 配置示例如下：
  ```
  servicecomb:
    matchGroup:
      AllOperation: |
        matches:
          - apiPath:
              prefix: "/"
    rateLimiting:     
      AllOperation: |      
        rate: 10 #在一段时间内只允许10次请求
  ```
  
 
