更新时间:2024-10-23 GMT+08:00

限流

限流规则借鉴了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限流开发指南

  • Spring Cloud通过Aspect拦截RequestMappingHandlerAdapter实现了限流,集成Spring Cloud Huawei以后,默认集成了限流模块spring-cloud-starter-huawei-governance, 只需要通过配置开启具体的限流策略。

    配置示例如下:

    servicecomb:
      matchGroup:
        AllOperation: |
          matches:
            - apiPath:
                prefix: "/"
      rateLimiting:     
        AllOperation: |      
          rate: 10 #在一段时间内只允许10次请求