服务降级就是当目标服务不可用时,调用备选服务的一种策略
在学习服务降级过程中,文章是从微服务间的调用超时可能会引起服务雪崩效应切入的
通过一段时间的使用和理解,发现服务降级并非只用在微服务之间的调用中,而是更大范围的调用
比如: 在一个应用中,如果目标A服务不可用,直接就可以退而求其次,调用B服务,这之间没有微服务间的远程调用,仅仅是一次普通的请求
@RestController
public class MyController {
@GetMapping("/get1")
@HystrixCommand(fallbackMethod = "bak")
public String get() throws InterruptedException {
Thread.sleep(2000L);
return "resultForInvokeGet2";
}
private String bak() {
return "get1超时!";
}
}
如上所示:当调用get1服务时,如果超时或不可用时会改为调用备选服务指向的方法bak.