熔断是写在消费层的,他解决的是服务的提供层离奇死亡后;消费层访问提供层的处理
feign中内置了Hystrix
feign中内置了Hystrix,不需要引入其他的依赖;因为它自带hystrix效果。
在feign中默认的是关闭状态需要在配置文件中打开。
编码
写接口的实现类,重写对应的方法,这个方法就是处理服务宕机的方法。
服务的提供者报废才返回到页面。
一个接口可以有多个实现类,在接口的@FeignClient注解中使用 指定实现类的类文件。后面的。class前面写的是类名
在controller层需要把@resout换掉
主类需要添加扫描
ribbon集成Hystrix
在pom文件中引入Hystrix依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.zhiyou100</groupId>
<artifactId>server-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<groupId>com.zhiyou100</groupId>
<artifactId>server-rebbion</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>server-rebbion</name>
<description>Demo project for Spring Boot</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--导入ribbon启动器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
<!--引入Hystrix启动器-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
</dependencies>
</project>
第二部编码service层
第三部在主类开启他