
spring cloud Feign接口组件中使用Hystrix
发布日期:2021-05-08 17:37:53
浏览次数:24
分类:精选文章
本文共 2208 字,大约阅读时间需要 7 分钟。
一.Feign组件调用远程服务的实现过程:
1.在controller层调用fegin定义的接口 2.在fegin的接口中,在头部定义@FeginClient,以及要调用的实例名称,配置信息,同时在每个调用方法前面加上@RquestLine等注解来定义请求访问的url和方式。二.在Feign接口组件中使用Hystrix
Spring Cloud默认已为Feign整合了Hystrix,Feign默认就会用断路器包裹所有方法。如果要使用Feign的Hystrix支持,可以设置feign.hystrix.enabled=true,要禁用,设置为false即可。
1.修改application.yml文件:
2.将controller中:超时熔断代码放到fegin的接口实现类中
修改后:
3.fegin的借口层:
package com.ljf.weifuwu.springcloud.hystrix.service;import com.ljf.weifuwu.springcloud.hystrix.model.HystrixUser;import config.HystrixUserConfig;import feign.Param;import feign.RequestLine;import org.springframework.cloud.netflix.feign.FeignClient;@FeignClient(name="ms-eureka-provider",configuration = HystrixUserConfig.class,fallback = HystrixFallBack.class)public interface HystrixUserFegin { //和ms-eureka-provider模块中的路径要保持一致/eureka-provider/{id} // @GetMapping("/eureka-provider/{id}") // public EurekaUser getSingleUser(@PathVariable Long id) @RequestLine("GET /eureka-provider/{id}") //使用fegin的特用注解,确保 HystrixUserConfig这个自定义的配置类进行了配置 public HystrixUser getSingleUser(@Param("id") Long id);}
4.fegin接口的实现熔断逻辑的实现类:
1. 接口HystrixUserFegin和实现类HystrixFallBack必须放在同一个包中
2.实现类要实现接口中定义的方法,方法中的逻辑是我们针对出现异常问题要怎么处理的一些逻辑
3.接口中的方法使用fegin特有的请求注解时(@RequestLine("GET /eureka-provider/{id}") ),确保configuration调用的类中实现了开启fegin注解使用的代码:
@Beanpublic Contract feignContract() { return new feign.Contract.Default();//只识别Feign的注释,不再识别Spring MVC的HTTP注释。}
package com.ljf.weifuwu.springcloud.hystrix.service;import com.ljf.weifuwu.springcloud.hystrix.model.HystrixUser;import com.ljf.weifuwu.springcloud.hystrix.service.HystrixUserFegin;import org.springframework.stereotype.Component;@Componentpublic class HystrixFallBack implements HystrixUserFegin { /** * 针对此方法,做的超时异常处理 * @param id * @return */ @Override public HystrixUser getSingleUser(Long id) { System.out.println("超时发生错误的.....使用fegin-hystrix进行处理"); HystrixUser u=new HystrixUser(); u.setId(00l); u.setName("fegin-hystrix-超时错误"); return u; }}
4.启动服务:ms-eureka-center(8761)、ms-eureka-provider(9701)、ms-hystrix-consumer(8005)
5.访问:没问题,都能正常访问
6.验证hystrix超时熔断处理逻辑,关闭ms-eureka-provider服务提供者:再次访问
ok,到此结束,fegin接口组件整合hystrix功能,到此结束。
发表评论
最新留言
不错!
[***.144.177.141]2025年04月05日 04时48分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
大数据处理黑科技:揭秘PB级数仓GaussDB(DWS) 并行计算技术
2021-05-09
C++调用Go方法的字符串传递问题及解决方案
2021-05-09
云原生2.0时代下,DevOps实践如何才能更加高效敏捷?
2021-05-09
技巧收藏|10个JavaScript常用数组操作方法
2021-05-09
两种端到端通用目标检测方法
2021-05-09
云小课 | 守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”
2021-05-09
LiteOS内核源码分析:任务栈信息
2021-05-09
23种设计模式之迭代器模式
2021-05-09
23种设计模式之组合模式
2021-05-09
mysql zip安装
2021-05-09
mysql修改密码
2021-05-09
virtualbox中 Kali Linux安装增强功能
2021-05-09
virtualbox中 Ubuntu挂载共享文件夹
2021-05-09
Python 内置函数笔记
2021-05-09
BootStrapTable 错误
2021-05-09
PHP 脚本不报错
2021-05-09
代码整洁之道小结
2021-05-09
悲观锁与乐观锁
2021-05-09
js new Date 创建时间默认是8点
2021-05-09
Python实现cmd命令连续执行
2021-05-09