spring cloud feign 服务降级
消费提供端不可用或者网络故障时,可使用服务降级返回默认结果
***********************
示例
****************
配置文件
application.yml
spring:
application:
name: feign-consumer
cloud:
consul:
host: 172.18.0.20
port: 8500
feign:
hystrix:
enabled: true
说明:需要打开hystrix断路器功能
****************
service 层
HelloService
@FeignClient(name = "hello-provider",fallback = HelloServiceImpl.class)
public interface HelloService {
@RequestMapping("/hello")
String hello();
@RequestMapping("/hello2")
String hello2(@RequestParam("name")String name);
}
****************
serviceImpl 层
HelloServiceImpl:提供默认的服务降级类
@Service
public class HelloServiceImpl implements HelloService {
@Override
public String hello() {
return "默认 hello world";
}
@Override
public String hello2(String name) {
return "默认 "+name;
}
}
注意:需要将实现类注册为bean,否则会报错
****************
controller 层
HelloController
@RestController
public class HelloController {
@Autowired
private HelloService helloService;
@RequestMapping("/get")
public String hello(){
return helloService.hello();
}
@RequestMapping("/get2")
public String hello2(@RequestParam("name")String name){
return helloService.hello2(name);
}
}