❒ 什么是服务雪崩
1. 服务之间通过fegin进行通讯
2. A -> B -> C -> D,D服务出现问题后 A,B,C,D都不能使用了
3. 一个服务失败,导致整条链路的服务都失败的情形
❒ 服务降级(接口级别)
✔ 服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用确保服务不会崩溃
✔ 服务之间调用样例
@Feignclient(value ="leadnews-article",fallback = IArticleclientfallback.class)
public interface IArticleclient {
@PostMapping("/api/v1/article/save")
public ResponseResult saveArticle(@ReqdestBody ArticleDto dto);
}
✔ 请求失败降级样例
@Component
public class IArticleclientFallback implements IArticleclient {
@0verridepublic ResponseResult saveArticle(ArticleDto dto){
return ResponseResult.errorResult(AppHttpcodeEnum.SERVER ERROR,"获取数据失败");
}
}
❒ 服务熔断(服务级别)
✔ Hystrix 熔断机制,用于监控微服务调用情况,默认是关闭的,
✔ 如果需要开启需要在引导类上添加注解:@EnableCircuitBreaker
✔ 如果检测到 10 秒内请求的失败率超过 50%,就触发熔断机制(关闭 -> 打开)。
✔ 之后每隔5秒重新尝试请求微服务,如果微服务不能响应,继续走熔断机制(半开 -> 打开)。
✔ 如果微服务可达,则关闭熔断机制,恢复正常请求(半开 -> 关闭)