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(); } }; } }
原文:https://www.cnblogs.com/liuboyuan/p/12010127.html