一、概念部分
1.什么是熔断器?
熔断,就是断开与服务器的连接,熔断器是在服务不可用的时候主动断开,以免造成更多的雪崩效应,他是保护服务高可用的最后一道防线。
2.为什么需要熔断器?
为保证服务高可用,最先想到的是服务集群,但集群并不能完全的保证服务高可用,
当某个服务出现故障时,在负载均衡的时候可能多次被调用到,调用方由于无法得到调用结果,会出现请求超时会其他异常,这时候如果不及时的熔断服务,就有可能会有更多的调用者去调用已经出现故障的服务节点,造成大量调用失败,甚至引发联级故障的雪崩。
在分布式系统中,通常会有很多的服务调用,比如服务调用关系:AB->C->D。
基础服务的故障可能会导致联级故障,如下图所示:
我们需要一个熔断机制,当某个节点出现故障时,及时的做熔断处理,防止更多的服务调用失败。
二、代码实现
服务熔断
1.创建项目consumer-service,在build.gradle中添加依赖dependencies { compile('org.springframework.cloud:spring-cloud-starter-eureka') compile('org.springframework.cloud:spring-cloud-starter-