本文介绍了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