我正在使用 Spring Cloud 2024.x 并尝试实现 Hystrix 以实现服务弹性。 部署信息:
服务已成功注册到Eureka,在浏览器中访问
localhost:8001/dept/hello
工作正常。但是,在主应用类中添加@EnableHystrix
并将@HystrixCommand
添加到/dept/hello
对应的控制器方法后,似乎并没有生效。
@GetMapping("/hello")
@HystrixCommand(fallbackMethod = "processHystrix")
public String hello() {
if ("Node3".equals(providerName)) {
throw new RuntimeException();
}
return "Hello Spring Cloud " + providerName;
}
public String processHystrix() {
return "Sorry, Current Service is down, please wait few minutes....";
}
我在网上搜索了很多答案,但似乎都没有解决我的问题。
不再支持 Hystrix。
由 Resilience4j 支持的Spring Cloud Circuitbreaker 是替代品。
将
org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j
导入您的 build.gradle
或 pom.xml
@Service
public static class DemoControllerService {
private final CircuitBreakerFactory cbFactory;
public String normal() {
return cbFactory.create("normal")
.run(() -> rest.getForObject("/normal", String.class), t -> "fallback");
}
}