博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring cloud学习(三) 断路器
阅读量:6679 次
发布时间:2019-06-25

本文共 1587 字,大约阅读时间需要 5 分钟。

在Spring Cloud中使用了Hystrix 来实现断路器的功能。Hystrix是Netflix开源的微服务框架套件之一,该框架目标在于通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能。

一、ribbon中使用hystrix

这里继续使用上一篇的client-a。

1.1

pom文件添加hystrix

org.springframework.cloud
spring-cloud-starter-hystrix

1.2

ClientApplication添加@EnableHystrix开启hystrix功能

1.3

Controller, 使用@HystrixCommand指定回调方法

@RestControllerpublic class TestController {    @Autowired    RestTemplate restTemplate;    @RequestMapping("/hi")    @HystrixCommand(fallbackMethod = "hiFallback")    public String hi(@RequestParam String id){        return restTemplate.getForObject("http://service-a/hi?id="+id, String.class);    }    public String hiFallback(String id) {        return "hi, " + id + ", error!";    }}

1.4

启动client-a, 然后关闭service-a, 打开页面
954438-20170509162150441-1172853248.png

可以看到成功返回错误信息,实现断路回调。

二、feign中使用hystrix

2.1

feign是自带断路器功能的,并且默认打开,如果你要关闭的话,需要加上这个配置:

feign:    hystrix:        enabled: false

2.2

这里只需要在@FeignClient注解上加上fallback就可以了

@Component@FeignClient(value = "service-a", fallback = ServiceAFeignClientFallback.class) //这里的value对应服务的spring.applicatoin.namepublic interface ServiceAFeignClient {    @RequestMapping(value = "/hi")    String hi(@RequestParam("id") String id);}

ServiceAFeignClientFallback:

/** * @author fengzp * @date 17/5/9 * @email fengzp@gzyitop.com * @company 广州易站通计算机科技有限公司 */public class ServiceAFeignClientFallback implements ServiceAFeignClient {    @Override    public String hi(String id) {        return "hi, " + id + ", error!";    }}

转载于:https://www.cnblogs.com/andyfengzp/p/6831145.html

你可能感兴趣的文章
linux文件系统 - 初始化(二)
查看>>
Python的可视化图表工具集
查看>>
《条目二十九:对于逐个字符的输入请考虑istreambuf_iterator》
查看>>
Python的优点与功能
查看>>
三个文件,
查看>>
webpack的总结
查看>>
hibernate 一级缓存和二级缓存
查看>>
javac不是内部或外部命令
查看>>
mvc SelectList selected失效的解决方法
查看>>
JAVA 设计模式 中介者模式
查看>>
我的软件工程课目标
查看>>
var a={n:1}; var b=a; a.x=a={n:2}; console.log(a.x); console.log(b.x);
查看>>
【HDOJ】3016 Man Down
查看>>
window.open打开新页面,并将本页数据用过url传递到打开的页面;需要两个页面;...
查看>>
查看本机IP分为两种情况:
查看>>
Scala进阶之路-Scala特征类与unapply反向抽取
查看>>
洛谷P3057 [USACO12NOV]远处的牧场Distant Pastures
查看>>
hdu3415 Max Sum of Max-K-sub-sequence 单调队列
查看>>
6421B Lab2 DHCP的配置及故障排除
查看>>
[C# 基础知识梳理系列]专题一:深入解析委托——C#中为什么要引入委托
查看>>