【SpringCloud】(十四):Feign对Hystrix的支持 fallbackFactory
来源:互联网 发布:mt4 一键下单脚本源码 编辑:程序博客网 时间:2024/05/20 01:47
前面的文章中提到了fallback,这里我们描述一个它的增强版。fallbackFactory。都是实现断路器的功能。
UserFeignClient
package com.dynamic.cloud.feign;import org.springframework.cloud.netflix.feign.FeignClient;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import com.dynamic.cloud.entity.User;//@FeignClient(name="microservice-provider-user",fallback =HystrixClientFallback.class,fallbackFactory=HystrixClientFallbackFactory.class)@FeignClient(name="microservice-provider-user",fallbackFactory=HystrixClientFallbackFactory.class)public interface UserFeignClient {@RequestMapping(value="/simple/{id}",method = RequestMethod.GET) //只能是RequestMappingpublic User findById(@PathVariable("id") Long id); //@PathVariable需要设置括号中的名称}
加上fallbackFactory
对应的类是HystrixClientFallbackFactory
package com.dynamic.cloud.feign;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Component;import com.dynamic.cloud.entity.User;import feign.hystrix.FallbackFactory;@Componentpublic class HystrixClientFallbackFactory implements FallbackFactory<UserFeignClient> {private static final Logger logger = LoggerFactory.getLogger(HystrixClientFallbackFactory.class);@Overridepublic UserFeignClient create(Throwable cause) {HystrixClientFallbackFactory.logger.info("fallback reason was: {} " ,cause.getMessage());return new UserFeignClientWithFactory(){@Overridepublic User findById(Long id) {User user = new User();user.setId(-1L);return user;}};}}
该类中存在UserFeignClientWithFactory,它继承了UserFeignClient。这里实现了它的方法。
package com.dynamic.cloud.feign;public interface UserFeignClientWithFactory extends UserFeignClient {}
我们把用户微服务停掉之后,断路器打开,执行fallbackfactory 指定的类中方法。HystrixClientFallbackFactory 。
阅读全文
1 0
- 【SpringCloud】(十四):Feign对Hystrix的支持 fallbackFactory
- 十四、断路器-Hystrix 对 Feign 的支持
- 【SpringCloud】(十三):全局和单个禁用Feign Client对Hystrix的支持
- springCloud学习02之断路器Hystrix-turbine监控-ribbo/feign对Hystrix的支持
- Feign对Hystrix的支持
- 【SpringCloud】(十二):Fegion的Hystrix支持
- SpringCloud(十四):Feign的demo之解决超时问题
- SPRINGCLOUD(EUREKA+RIBBON+FEIGN+HYSTRIX)
- spring cloud-Feign的Hystrix支持
- Feign Hystrix 支持
- SpringCloud(第 016 篇)电影微服务,定制Feign,一个Feign功能禁用Hystrix,另一个Feign功能启用Hystrix
- SpringCloud(第 017 篇)电影微服务接入Feign,添加 fallbackFactory 属性来触发请求进行容灾降级
- SpringCloud(十一):Feign的demo之添加Feign
- 【SpringCloud】(九):Feign的自定义配置
- SpringCloud--断路器(Hystrix)
- SpringCloud:断路器(Hystrix)
- SpringCloud--服务消费者(Feign)
- SpringCloud: 服务消费者(Feign)
- 过滤器的原理及配置
- 链表划分
- 算法实现:二进制老鼠测毒
- Android 应用内分屏查看(使用fragment)
- Linux服务(DNS)
- 【SpringCloud】(十四):Feign对Hystrix的支持 fallbackFactory
- window10安装nodejs出现2503,2502错误的解决方法
- 【二分图匹配入门专题1】A
- Mysql联表查询、查询近期某段时间内的数据等
- 设计模式——工厂方法模式
- 单向循环链表
- Java中Vector和ArrayList的区别
- HDU 1087
- android境外支付