一:和Ribbon一起使用
1.在eyreka的客户端加入依赖:
<!--hytrix依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
在启动类加上注解:
@EnableHystrix //熔断器
在调用服务的接口添加快速失败执行的方法并在调用服务的方法添加注解:
@Override
@HystrixCommand(fallbackMethod = "fallBack")
public String sayHello(String name){
//路径中使用的是服务名 ,即服务提供者的 application: name
return template.getForObject("http://eureka-client/sayHello?name="+name,String.class)+"???";
}
public String fallBack(String name){
return "服务请求失败"+name;
}
二、和Feign一起使用
1、计入依赖
2、配置文件添加
#启用熔断器
feign:
hystrix:
enabled: true
2.修改远程调用接口的注释为
@FeignClient(value = "eureka-client",fallback = FServiceImpl.class) //指定药访问的服务名,添加快速失败实现类
3、实现该接口:
该调用方法的实现即为它的快速失败执行方法:
package com.wxz.eurekafeignclient.service.serviceImpl;
import com.wxz.eurekafeignclient.service.FService;
import org.springframework.stereotype.Component;
/**
* @author Wangxingze
* @date 2019-08-22 23:47
*/
@Component //添加该依赖将其注入IOC
public class FServiceImpl implements FService {
/**
* 该实现为接口中的快速失败执行方法
* @param name
* @return
*/
@Override
public String sayHello(String name){
return "服务快速失败";
}
}