Feign Hystrix 支持

来源:互联网 发布:中国网络信息安全联盟 编辑:程序博客网 时间:2024/05/20 03:41

如果Hystrix在类路径上,feign.hystrix.enable=true,Feign将用断路器包装所有方法。

Hystrix支持回退的概念:当电路断开或出现错误时执行的默认代码路径。要为给定的@FeignClient启用回退,请将fallback属性设置为实现回退的类名。

示例代码:

这里写图片描述

UserFeignClientHystrix 需要实现UserFeignClient

UserFeignClient.java

@FeignClient(name = "springcloud-userservcie", fallback = UserFeignClientHystrix.class)public interface UserFeignClient {    @RequestMapping(value = "userService/getUser/{userId}", method = RequestMethod.GET)    public User getUser(@PathVariable("userId") String userId);    @RequestMapping(value = "userService/saveUser", method = RequestMethod.POST)    public String saveUser(User user);    @RequestMapping(value = "userService/deleteUser/{userId}", method = RequestMethod.GET)    public Boolean deleteUser(@PathVariable("userId") String userId);    @RequestMapping(value = "userService/findUserByUserNameAndPassword", method = RequestMethod.GET)    public User findUserByUserNameAndPassword(@RequestParam("userName") String userName, @RequestParam("password") String password);}

这里写图片描述

UserFeignClientHystrix.java

@Componentpublic class UserFeignClientHystrix implements UserFeignClient {    @Override    public User getUser(String userId) {        System.out.println("打开了断路器--->" + userId);        return null;    }    @Override    public String saveUser(User user) {        return null;    }    @Override    public Boolean deleteUser(String userId) {        return null;    }    @Override    public User findUserByUserNameAndPassword(String userName, String password) {        return null;    }}

这里写图片描述