拿下SpringCloud之Hystrix容错限流

为什么需要容错限流
服务依赖 :服务扇出
单个服务延迟:所有请求都阻塞在某个服务上
容错限流的原理
超时:主动超时
限流:限制最大流量
熔断:当错误达到阀值时类似于保险丝的熔断
隔离:隔离不同的依赖调用
服务降级
断路器模式
在这里插入图片描述
舱壁隔离模式
1 凡是依赖都有可能失败
2 凡是资源都有限制
3 网络并不可靠
4 延迟是应用稳定性的杀手,延迟会占用大量的资源,比如内存等
Hystrix原理
Hystrix自适应工作流程
在这里插入图片描述
断路器
在这里插入图片描述
基于以秒为单位的滚筒,如果处于断路状态,或者睡眠时间未到达则拒绝请求,否则放入一个请求,并通过滚筒计算失败率,如果失败率超过阀值则关闭电路
Hystrix的主要概念
Hystrix command 自己的业务逻辑继承 Hystrix command
快速失败
安静失败 失败的时候返回空值
static fallback 返回默认值
Fallback via Network 调用辅助服务
Primary secondary with fallback 先尝试老功能,新功能没问题再尝试新功能
请求合并 把一段时间内的请求合并发送
请求缓存 对请求进行缓存
Hystrix 信号量和线程池隔离
线程池隔离:为每一个依赖的服务单独建立一个线程池
支持排队,主动超时,支持异步调用
适用于不授信客户,适用于非高扇出场景
信号量隔离:为每一个依赖的服务建立信号量
适合 授信服务,高扇出场景
Hystrix 的主要配置项
在这里插入图片描述
隔离策略
间隔窗口
最小流量阀值
最小错误阀值
补充:服务熔断和服务降级
服务熔断
向调用方返回一个符合预期的,可处理的备选响应,而不是长时间的等待或者抛出调用方无法处理的异常。当某个异常条件被触发,直接熔断整个服务,而不是一直等到此服务超时。
缺点:方法膨胀;处理异常的方法跟业务方法耦合在了一起
服务降级
服务降级是在客户端完成的,与服务端没有关系。一般是从整体负荷考虑,当某个服务熔断以后,服务器将不再被调用,此时客户端可以自己准备一个本地的fallback回调,返回一个缺省值,这样做虽然服务水平下降,但是还是能保证可用性的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值