本文介绍了springcloud Feign的Hystrix支持,分享给大家,具体如下:
一、Feign client中加入Hystrix的fallback
1
2
3
4
5
6
7
8
9
10
11
12
|
@FeignClient (name= "springboot-h2" , fallback=HystrixClientFallback. class ) //在fallback属性中指定断路器的fallback public interface UserFeignClient { // @GetMapping("/user/{id}") @RequestMapping (value = "/user/{id}" , method = RequestMethod.GET) User findById( @PathVariable ( "id" ) Long id); @RequestMapping (value= "/users" , method=RequestMethod.GET) List<User> findAll(); @RequestMapping (value= "/post/user" , method=RequestMethod.POST) User save( @RequestBody User user); } |
二、编写HystrixClientFallback类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
@Component //加入spring bean中 public class HystrixClientFallback implements UserFeignClient{ @Override public User findById(Long id) { User u = new User(); u.setName( "临时名" ); u.setUsername( "匿名" ); return u; } @Override public List<User> findAll() { return null ; } @Override public User save(User user) { return null ; } } |
三、加入Hystrix支持
1
|
@EnableCircuitBreaker |
四、测试
不启动底层依赖的服务,直接启动服务,然后测试,发现浏览器中的结果为:
{"id":null,"username":"匿名","name":"临时名","age":null,"balance":null}
并没有像想象中的那样报异常,而是进入了HystrixClientFallback类中的findById方法中。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/liuchuanhong1/article/details/55005446