在分布式系统(类似于多个服务在不同的机器上启动,多个机器服务构成一个系统)中,若有一个失效直接中断,让服务不再继续调用
1.添加熔断器的依赖
<!--服务注册-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--服务调用-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
<!--hystrix依赖,主要是用 @HystrixCommand -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
2.在调用端的配置文件中开启熔断器
#开启熔断机制
feign.hystrix.enabled=true
# 设置hystrix超时时间,默认1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=6000
3.在创建interface之后,还需要创建interface对应实现类,在实现类中实现,出错了执行方法,输出内容
实现类接入创建的接口(就是写方法的一个文件类,似于service文件)
4.在interface上面添加注解和属性
@FeignClient(name = "服务的名字", fallbaock = "刚刚创建的实现类的名字.class")