1. 添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>com.netflix.hystrix</groupId>
<artifactId>hystrix-javanica</artifactId>
</dependency>
2. 修改启动类
消费端启动类添加@EnableCircuitBreaker
注解
3. 方法添加注解
消费者中的Controller层
@RestController
public class MyController {
@Autowired
private HelloService hs;
@RequestMapping("/test")
//fallbackMethod的参数为失败时的调用方法名(两个方法的参数相同)
@HystrixCommand(fallbackMethod = "fallback")
public String test(String name) {
return hs.hello(name);
}
//失败时调用此方法
public String fallback(String name) {
return "失败了--->" + name;
}
}
消费者中的Service层
@FeignClient("eureka-provider")
public interface HelloService {
@RequestMapping("/hello")
public String hello(@RequestParam String name);
}
提供者中的Controller层
@RequestMapping("/hello")
public String hello(String name) {
return "提供者1号--->你好," + name;
}
4. 测试
4.1 启动注册中心、提供者、消费者
4.2 访问消费者
4.3 关闭提供者
4.4 再次访问消费者
页面显示访问失败时的返回值