Hystrix是一个高可用服务保护框架.
解决分布式系统中打造高可用服务面临的一系列难题,可以解决问题如下:
(1)断路器
(2)服务降级
(3)服务熔断
(4)服务隔离机制
(5)服务雪崩效应
以及连环服务雪崩效应
(比如:客户端 请求订单服务
,订单服务有请求会员服务
, 如果有人恶意攻击在同一时刻高并发请求订单服务
, 那么会同事导致订单服务
和会员服务
均不可用,即连环雪崩效应
.)
基于Hystrix解决服务雪崩原理
-
服务降级
- 高并发情况下防止用户一直等待,使用
服务降级
方式,返回一个友好的提示给客户端,调用fallBack
本地方法,目的为了用户体验
.比如:秒杀活动,当用户过多的时候会提示"稍后重试"; - 也就是 tomcat 的线程池中没有线程处理客户端请求的时候,不应该让用户一直处于等待状态.
- 如果调用其他接口超时的时候(默认1秒),如果在1秒钟之内没有及时响应,此时业务逻辑还会
继续正常
执行,但是接口会直接
执行服务降级方法fallback()
;
- 高并发情况下防止用户一直等待,使用
-
服务熔断
- 目的是为了保护服务,在高并发的情况下,如果请求达到了一定的极限(可以自己设置阈值),自动开启保护服务功能,使用服务降级方式返回一个友好的提示,所以,
熔断机制
和降级机制
一起使用.
- 目的是为了保护服务,在高并发的情况下,如果请求达到了一定的极限(可以自己设置阈值),自动开启保护服务功能,使用服务降级方式返回一个友好的提示,所以,
-
服务隔离
- 线程池隔离方式:在tomcat中对于高并发的接口,每个服务接口拥有
自己独立
的线程池.
image.png
- 线程池隔离方式:在tomcat中对于高并发的接口,每个服务接口拥有
网友评论