Hystrix

1.前言

1.1 什么是服务雪崩

服务雪崩的本质:线程没有及时回收。

不管是调用成功还是失败,只要线程可以及时回收,就可以解决服务雪崩

1.2 服务雪崩怎么解决

1.2.1 修改调用的超时时长(不推荐)

将服务间的调用超时时长改小,这样就可以让线程及时回收,保证服务可用
优点:非常简单,也可以有效的解决服务雪崩
缺点:不够灵活,有的服务需要更长的时间去处理(写库,整理数据)

1.2.2 设置拦截器

2.Hystrix 简介

熔断器,也叫断路器!(正常情况下 断路器是关的 只有出了问题才打开)用来保护微服务不雪崩的方法。思想和我们上面画的拦截器一样。

Hystrix 是 Netflix 公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。Hystrix 是通过隔离服务的访问点阻止联动故障的,并提供了故障的解决方案,从而提高了整个分布式系统的弹性。

3.Hystrix 快速入门

当有服务调用的时候,才会出现服务雪崩,所以 Hystrix 常和 OpenFeign,Ribbon 一起出现。

3.1在 OpenFeign 中使用 Hystrix

pom.xml

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

3.1.1 创建 OrderFeignHystrix 实现 OrderFeign接口

@Component
public class OrderFeignHystrix implements OrderFeign {
@Override
public String addOrder(String orderName) {
return null;
}
}

3.1.2 修改@FeignClient 增加 fallback 属性

@FeignClient(value = "openFeign-server", fallback = OrderFeignHystrix.class)
public interface OrderFeign {
@GetMapping("/add")
String addOrder(@RequestParam("orderName") String orderName);
}

3.1.3 修改 yml 配置文件

feign:
hystrix:
enabled: true # 开启断路器

3.1.4 启动测试

4.Hystrix 的常用配置

hystrix: #hystrix 的全局控制
command:
default: #default 是全局控制,也可以换成单个方法控制,把 default 换成方法名即可
fallback:
isolation:
semaphore:
maxConcurrentRequests: 1000 #信号量隔离级别最大并发数
circuitBreaker:
enabled: true #开启断路器
requestVolumeThreshold: 3 #失败次数(阀值)
sleepWindowInMilliseconds: 20000 #窗口时间
errorThresholdPercentage: 60 #失败率
execution:
isolation:
Strategy: thread #隔离方式 thread 线程隔离集合和 SEMAPHORE 信号量隔离级别
thread:
timeoutInMilliseconds: 3000 #调用超时时长
ribbon:
ReadTimeout: 5000 #要结合 feign 的底层 ribbon 调用的时长
ConnectTimeout: 5000
#隔离方式 两种隔离方式 thread 线程池 按照 group(10 个线程)划分服务提供者,用户请求的线程和做远程的线程不一样
# 好处 当 B 服务调用失败了 或者请求 B 服务的量太大了 不会对 C 服务造成影响 用户访问比较大的情况下使用比较好 异步的方式
# 缺点 线程间切换开销大,对机器性能影响
# 应用场景 调用第三方服务 并发量大的情况下
# SEMAPHORE 信号量隔离 每次请进来 有一个原子计数器 做请求次数的++ 当请求完成以后 --
# 好处 对 cpu 开销小
# 缺点 并发请求不易太多 当请求过多 就会拒绝请求 做一个保护机制
# 场景 使用内部调用 ,并发小的情况下
# 源码入门 HystrixCommand AbstractCommand HystrixThreadPool
posted @   Lz_蚂蚱  阅读(14)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起