Feign Hystrix 支持

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

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

示例代码:

Feign Hystrix 支持_第1张图片

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

@Component
public 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;
    }

}

这里写图片描述

你可能感兴趣的:(SpringCloud)