文档章节

Spring Cloud 之断路器

S
 Superwind20
发布于 2017/08/26 10:10
字数 376
阅读 9
收藏 0

Spring Cloud中使用Hystrix来实现断路器的功能。

Ribbon中引入Hystrix

1. pom.xml引入spring-cloud-starter-hystrix,application主类中使用@EnableCircuitBreaker,开启断路器功能。

2. RestTemplate远程调用代码收敛到新的方法,在该方法上使用@HystrixCommand(fallbackMethod = "**Fallback")

3. 增加**Fallback方法,里面编写出现断路时的处理逻辑等

注意:

1. 回退方法的名称可随意定,但出、入参必须和所注解的方法一致,否则报fallbackMethod未定义错误

2. 远程方法执行时间大于断路器的时限(例如timeoutInMilliseconds=5s,而远程方法执行10s),hystrix中的MethodExecutionAction.execute捕获异常,HystrixCommand检查是否有配置回退方法,如果有,则回退方法执行,调用方按回退方法返回的内容继续执行,直到业务处理结束。如果没有,则抛HystrixRuntimeException

Feign使用Hystrix

1. 不需要在Feigh工程中引入Hystix,Feign中已经依赖了Hystrix

2. 不需要在主类使用@EnableCircuitBreaker,已自动开启该功能

3. 在FeignClient的interface上设置fallback,如 @FeignClient(value = "user-service", fallback = UserServiceHystrix.class)

4. 增加UserServiceHystrix类实现feign接口,重写其中的方法,里面的逻辑为:容错处理,例如,直接返回错误

注意:

1. 不需要在FeignClient的interface上使用@HystrixCommand,已隐含,所以在没有写fallback类的情况下,抛异常:hystrix中的InvocableHandlerMethod.doInvoke捕获HystrixRuntimeException,错误信息 ** failed and no fallback available;超时:同上,捕获HystrixRuntimeException,错误信息 ** timed-out and no fallback available

© 著作权归作者所有

S
粉丝 0
博文 39
码字总数 15170
作品 0
广州
私信 提问
热门技术从零开始学Spring Cloud视频教程发布

使用技术 (1)spring boot,使用版本:1.5.8 (2)spring cloud ,使用版本:Dalston.SR4 (3)Netflix Eureka (4)Netflix Ribbon (5)Feign (6)Netflix Hystrix (7)Spring Clou Con...

小红牛
2018/08/04
0
0
史上最简单的 SpringCloud 教程 | 终章

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者、原文超链接 ,博主地址:http://blog.csdn.net/forezp。 https://blog.csdn.net/forezp/article/details/70148833 转载请标明出处...

方志朋
2017/04/12
0
0
Spring Cloud Netflix架构浅析

最近接触微服务这块的东西,对这方面有了一些了解,拿出来和大家分享一下。 微服务框架Spring Boot+Spring Cloud Spring Cloud是基于Spring Boot的一整套实现微服务的框架,可以说,Spring ...

海岸线的曙光
2017/12/20
931
0
疯狂Spring Cloud连载(16)Hystrix运作流程

本文节选自《疯狂Spring Cloud微服务架构实战》 京东购买地址:https://item.jd.com/12256011.html 当当网购买地址:http://product.dangdang.com/25201393.html Spring Cloud教学视频:htt...

杨大仙的程序空间
2017/11/02
550
2
spring cloud微服务分布式云架构 - Spring Cloud简介

Spring Cloud是一系列框架的有序集合。利用Spring Boot的开发模式简化了分布式系统基础设施的开发,如服务发现、注册、配置中心、消息总线、负载均衡、断路器、数据监控等(这里只简单的列了...

明理萝
2018/11/01
168
3

没有更多内容

加载失败,请刷新页面

加载更多

JMM内存模型(一)&volatile关键字的可见性

在说这个之前,我想先说一下计算机的内存模型: CPU在执行的时候,肯定要有数据,而数据在内存中放着呢,这里的内存就是计算机的物理内存,刚开始还好,但是随着技术的发展,CPU处理的速度越...

走向人生巅峰的大路
36分钟前
86
0
你对AJAX认知有多少(2)?

接着昨日内容,我们几天继续探讨ajax的相关知识点 提到ajax下面几个问题又是必须要了解的啦~~~ 8、在浏览器端如何得到服务器端响应的XML数据。 通过XMLHttpRequest对象的responseXMl属性 9、 ...

理性思考
45分钟前
4
0
正则表达式基础(一)

1.转义 转义的作用: 当某个字符在表达式中具有特殊含义,例如字符串引号中出现了引号,为了可以使用这些字符本身,而不是使用其在表达式中的特殊含义,则需要通过转义符“\”来构建该字符转...

清自以敬
48分钟前
4
0
idea中@Data标签getset不起作用

背景:换电脑以后在idea中有@data注解都不生效 解决办法:idea装个插件 https://blog.csdn.net/seapeak007/article/details/72911529...

栾小糖
54分钟前
5
0
Apache Kudu 不能删除不存在的数据

使用Apache Kudu客户端,对KafkaConnect Sink 进行扩展。 使用的Apache Kudu 的Java 客户端。突然有天发现作业无法提交,一直报错。 后来才发现这是Kudu自身的一种校验机制。为了忽略这种校验...

吐槽的达达仔
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部