OpenFeign使Hystrix

开启依赖:

在pay中通过feign.hystrix.enabled=true开启Hystrix

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:10010/eureka/
  instance:
    instance-id: pay-server
spring:
  application:
    name: pay-server
server:
  port: 10040
feign:
  hystrix:
    enabled: true #开启hystrix熔断支持

拖底实现类编写:

实现Feign的客户端接口

//要交给spring去管理
@Component
//FallbackFactory的泛型为实现的Feign的客户端接口
public class FeignClientHystrixFactory implements FallbackFactory<FeignClient> {
 
    @Override
    public FeignClient create(Throwable throwable) {
        return new FeignClient() {
            @Override
            public User getById(Long id) {
                //拖底的数据,要返回的是Feign所使用的对象
                return new User(1L,"系统繁忙,请稍后再试","错误了");
            }
        };
    }
}

注意:要使用Hystrix必须将实现类交给spring管理,打上@Component注解;

FallbackFactory<>为固定的格式,泛型里面必须为Feign的客户端接口的类名

返回值要是Feign所使用的类

改造Feign的客户端接口:

在@FeignClient中加上fallbackFactory = FeignClientHystrixFactory.class

FeignClientHystrixFactory为feign的实现类

@FeignClient(value = "user-server",fallbackFactory = FeignClientHystrixFactory.class)
public interface FeignClient {
    @GetMapping("/user/{id}")
    User getById(@PathVariable("id") Long id);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值