首页 > 编程语言 > 详细

springcloud feign增加熔断器Hystrix

时间:2019-12-09 13:11:37      阅读:66      评论:0      收藏:0      [点我收藏+]

1.依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

2.springboot启动类上不需要额外加注解,feignclient注解默认支持hystrix

@EnableFeignClients  //1.支持Hystrix和他的fallback  2.支持ribbon 的负载均衡  3.启动时会进行包扫描,扫描所有带@FeignClient的类并进行处理

3.配置增加

feign.hystrix.enabled=true

4.feign客户端注解中fallback指定熔断处理类,需要知道具体调用失败原因可以使用fallbackFactory

feign

@FeignClient(name = "test",fallback = MqSendFeignFallback.class)
//@FeignClient(name = "test",fallbackFactory = MqsendFeignFallbackFactory.class) //fallbackFactory可以获取调用失败原因
public interface MqSendFeign {

    @PostMapping("/ss/common/sendMq")
    Result sendMq(@RequestBody @Valid MqMessage mqMessage);

}

fallback

@Slf4j
@Component
public class MqSendFeignFallback implements MqSendFeign {

    @Override
    public Result sendMq(MqMessage mqMessage) {
        log.info("MqSendFeignFallback error");
        return new Result();
    }
}

 

fallbackFactory

@Slf4j
@Component
public class MqsendFeignFallbackFactory implements FallbackFactory<MqSendFeign> {

    @Override
    public MqSendFeign create(Throwable throwable) {
        return new MqSendFeign() {
            @Override
            public Result sendMq(MqMessage mqMessage) {
                log.error("MqsendFeignFallbackFactory error",throwable);
                return new Result();
            }
        };
    }
}

 

springcloud feign增加熔断器Hystrix

原文:https://www.cnblogs.com/liuboyuan/p/12010127.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!