1,消费者服务中开启熔断支持
feign.hystrix.enabled=true
启动类上添加
@EnableFeignClients
2,feign接口代码
/**
* @FeignClient 标志开启feign客户端
* value = "USER-SERVER" 调用生产者服务名
* fallback = UserServiceHystrix.class 生产者异常后调用的熔断代码类
*
*/
@FeignClient(value = "USER-SERVER",fallback = UserServiceHystrix.class)
public interface UserFeginInterface {
/**
* @GetMapping("/account-info/get") 生产者接口名
* @return
*/
@GetMapping("/account-info/get")
public String get();
}
3,消费者feign远程调用代码
@Controller
@RequestMapping("/account-info")
public class AccountInfoController {
//注入feign接口
@Autowired
private UserFeginInterface userFeginInterface;
@ResponseBody
@GetMapping(value = "/get")
public String get(){
//feign调用
String str = userFeginInterface.get();
if(StringUtils.equals(str,"服务不可用")){
return "sssssssssss";
}
return str;
}
}
4,生产者服务异常,熔断处理类(消费者服务中编写)
@Component
public class UserServiceHystrix implements UserFeginInterface {
@Override
public String get() {
return "服务不可用";
}
}
5,因为feign中包含对hystrix的支持,所以不需要引用其他jar
6,服务异常调用
7,生产者正常调用