Feign对Hystrix的支持

如果Hystrix在classpath下,默认情况下将包括Feign与断路器的所有方法。返回一个com.netflix.hystrix.HystrixCommand去使用,允许你使用反应模式(调用.toObservable或.observe()或异步使用(.queue()))。要禁用Feign的Hystrix支持,设置feign.hystrix.enable=false。

要在每个客户端上禁用Hystrix支持,创建一个Feign.Builder并将scope设置为“prototype”,例如:

@Configuration
public class FooConfiguration {
    @Bean
    @Scope("prototype")
    public Feign.Builder feignBuilder() {
        return Feign.builder();
    }
}

Feign Hystrix Fallbacks (失败回退)

Hystrix支持失败回退的概念,当线路有错误是则执行默认代码路径,启用回退要给@FeignClient设置fallback属性来实现回退的类名。

编写一个实现类,实现Client接口

@Component
public class MenuClientFallback implements MenuClient {

    @Override
    public ResponseResult saveOrUpdateMenu(MenuModel menuModel) {
        System.out.println("调用服务失败");
        return new ResponseResult("-1", "调用服务失败");
    }

}

@FeignClient注解加上fallback属性,fallback属性的值就是实现类.class

@FeignClient(name = "WishfulCloud-Authority-Service", fallback=MenuClientFallback.class)
public interface MenuClient {

    @RequestMapping(value = "/menu/saveOrUpdateMenu", method = RequestMethod.POST)
    public ResponseResult saveOrUpdateMenu(@RequestBody MenuModel menuModel);

}

这里写图片描述

fallbackFactory

如果需要访问导致回退触发的原因,可以在@FeginClient中使用fallbackFactory属性

FeignHystrix是两个常用的工具,用于构建分布式系统中的微服务。Feign是一个声明式的Web服务客户端,通过简单的接口注解来定义和绑定服务之间的通信。而Hystrix是一个用于处理分布式系统中的故障和延迟问题的库。 要使用FeignHystrix,首先需要在配置文件中进行一些基础配置。根据引用和引用的内容,可以参考之前的配置方法,在配置文件中添加如下代码: ``` feign: hystrix: enabled: true ``` 这样就启用了Feign中的Hystrix支持。 在使用FeignHystrix的组合时,通常的做法是将Hystrix作为请求端的设置。这是一种经典的使用方式,可以通过在Feign客户端接口上添加`@FeignClient`注解,并在该注解中设置`fallback`属性来指定Hystrix的回退逻辑。这样当服务提供端发生故障或延迟时,Hystrix会根据预设的策略执行回退逻辑。 具体来说,在使用Feign时,可以通过在接口上添加`@FeignClient`注解,并设置`fallback`属性来指定Hystrix的回退逻辑。例如: ```java @FeignClient(name = "service-name", fallback = MyFallback.class) public interface MyFeignClient { // 定义服务之间的接口 } ``` 在上述例子中,`MyFallback`是一个实现了`MyFeignClient`接口的回退逻辑类。当服务提供端发生故障或延迟时,Hystrix会调用`MyFallback`中定义的方法来执行回退逻辑。 总结一下,使用FeignHystrix可以通过在配置文件中启用Hystrix支持,并在Feign客户端接口上添加`@FeignClient`注解来设置Hystrix的回退逻辑。这样就可以提高分布式系统的可靠性和容错能力。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值