-
作用
服务提供方在服务异常的时候,可以提供一个fallback准备,防止因为本方法的异常影响整个服务的性能。 -
springcloud版本
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
- 依赖hystrix
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.6.RELEASE</version>
</dependency>
- yml配置
server:
port: 8003
spring:
application:
name: providertest
#eureka配置
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka/
instance:
instance-id: provider-8003 #默认描述信息
info:
app.name: provide-01
company.name: lsxx
- 启动类
@SpringBootApplication
@EnableCircuitBreaker //开启断路器
public class ProvideHystrixMain {
public static void main(String[] args) {
SpringApplication.run(ProvideHystrixMain.class, args);
}
}
- 服务实现
@RestController
public class TestController {
@RequestMapping("/test")
@HystrixCommand(fallbackMethod = "hystirxTest")
public String test() {
throw new RuntimeException("服务异常");
}
public String hystirxTest() {
return "熔断方式返回";
}
}
- 调用结果