版本:若依框架微服务版本
学习内容:springboot-gateway
熔断降级踩坑
文档上使用的hystrix在springcloud3.1.8不再支持,建议改为使用CircuitBreaker,使用方式和hystrix几乎无差别,只是需要修改pom引用:
XML
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-circuitbreaker-reactor-resilience4j</artifactId>
</dependency>
启动后发现还是报错,错误信息:
Unable to find GatewayFilterFactory with name CircuitBreaker
查了很多资料,有的说还是需要加入hystrix引用(两个引用都加入),实际测试无效。最后找到了解决方案,需要配置以下bean,具体请参考这里。
java
@Bean
@ConditionalOnMissingBean(ReactiveResilience4JCircuitBreakerFactory.class)
public ReactiveResilience4JCircuitBreakerFactory reactiveResilience4JCircuitBreakerFactory() {
//log.warn("ReactiveResilience4JCircuitBreakerFactory 不存在,自己创建一个");
return new ReactiveResilience4JCircuitBreakerFactory();
}
之后RuoYiGatewayApplication才能够正常启动。熔断降级才能生效。