spring cloud hystrix学习总结

本文详细介绍了Spring Cloud中Hystrix的使用方法,包括引入依赖、配置熔断、实现容错,以及通过注解和继承类的方式实现服务熔断。同时,深入解析了Hystrix的实现源码,探讨其断路器机制和状态转换。

1 hystrix的使用:
引入:

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

和spring cloud +springboot相关jar包
造启动类上加上注解:@EnableCircuitBreaker或者@EnableHystrix就可以实现服务熔断了

2种方式:
1 注解:
@HystrixCommand(fallbackMethod=“error”,commandProperties={
@HystrixProperty(name=“execution.isolation.thread.timeoutInMilliseconds”,value=“100”),
@HystrixProperty(name=“execution.timeout.enabled”,value=“false”)
})
注意:
1 fallbackMethod方法必须和执行的方法在同一个类中
2 方法签名一样(可以抛出异常)
相关属性可以查阅官方文档:
https://github.com/Netflix/Hystrix/wiki/Configuration
2 通过继承类com.netflix.hystrix.HystrixCommand实现
需要重写:getFallback()方法,该方法就是熔断方法
run方法就是业务执行方法
相关的设置可以通过构造器设置
在feign中的使用:
feign中默认是继承了hystrix的,老版本默认是打开的,最近的版本需要通过配置文件打开,(feign.hystrix.enabled=true)实现方式概述如下:
@FeignClient(name = “sc-provider-service”, fallback = UserServiceFallback.class)
通过设置FeignClient的属性指定容错类实现相应的容错

2 hystrix的实现源码分析:
hystrix关键类:断路器 HystrixCircuitBreaker—>HystrixCircuitBreakerImpl实现
三种状态:
enum Status {
CLOSED, OPEN, HALF_OPEN;
}
针对每个HystrixCommandGroupKey都有一个断路器
里面有个方法:allowRequest根据配置的各种条件设置是否通过请求实现熔断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值