在前面学习 Hystrix 的时候,我们知道 Hystrix 有服务降级的能力,即如果服务调用出现了异常,则执行指定的 fallback 方法。Spring Cloud Gateway 也整合了 Hystrix,可以为我们提供路由层面服务降级。
先导入hystrix依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
这里仅对consumer-9091进行配置
#端口
server:
port: 16000
#服务名
spring:
application:
name: gateway
cloud:
gateway:
routes: #路由配置:参数为一个List
- id: consumer-9090 #唯一标识
uri: lb://RIBBON-CONSUMER #转发的地址,写服务名称
predicates:
- Path=/ribbon/** #判断匹配条件,即地址带有/ribbon/**的请求,会转发至lb:RIBBON-CONSUMER
filters:
- StripPrefix=1 #去掉Path前缀,参数为1代表去掉/ribbon
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 1 # 填充速度,每秒
redis-rate-limiter.burstCapacity: 3 # 令牌桶的容积
key-resolver: "#{@remoteAddrKeyReso