SpringCloud服务治理(十一)服务降级

兜底数据:

 当服务降级时,自动返回默认数据如排队页面(等一会儿重试),无货了,加载异常页面(活动太火爆了,请重试,网络异常)

兜底逻辑:

 当服务降级时,由复杂业务转变为使用简单业务

 熔断器: 

服务调用之前,对服务进行检查,服务调用之后,统计调用结果,维护服务状态,开启,半开,关闭

手动降级:

配置中心手动配置服务降级开关状态,熔断器对比参数设置,直接关闭服务 

配置中心手动配置整体架构降级等级,熔断器批量对服务进行关闭

自动降级

超时降级:

当服务请求超时或重试次数超过配置中心设置阀值,服务降级,本次及下次自动调用兜底逻辑

 失败次数降级:

当服务调用失败次数超过配置中心设置阀值,服务降级,本次及下次自动调用兜底逻辑 

故障降级:

当服务挂了,网络问题,状态码异常,rpc返回异常,服务降级,本次及下次自动调用兜底逻辑

降级恢复: 

熔断器经过一段时间之后,放几个请求,检查服务,如果正常,恢复半开状态,一段时间之后,服务恢复开启状态

hystrix: 

1,导入hystrix依赖,方法实现类注解hystrix超时逻辑方法,提供超时兜底逻辑 

2,自定义超时返回逻辑工厂类,当请求超时时,直接返回兜底逻辑 

3,HystrixCommand注解形式,配置兜底逻辑及实现兜底逻辑

配置降级:

配置中心登记降级策略,降级参数,服务启动拉取配置中心的降级策略,降级参数信息,本地存储一份缓存,配置中心配置修改之后,发送修改配置数据至服务 服务调用完毕之后,熔断器统计服务时,通过降级参数,及自定义降级策略,修改服务状态,或使用降级策略。

降级策略:

1,页面降级 —— 可视化界面禁用点击按钮、调整静态页面 

2,延迟服务 —— 如定时任务延迟处理、消息入MQ后延迟处理 

3,写降级 —— 直接禁止相关写操作的服务请求 

4,读降级 —— 直接禁止相关度的服务请求 

5,缓存降级 —— 使用缓存方式来降级部分读频繁的服务接口

 6,抛异常 

7,返回NULL 

8,调用Mock数据 

9,调用Fallback处理逻辑

分级降级:

蓝色风暴 —— 表示需要小规模降级非核心服务 

黄色风暴 —— 表示需要中等规模降级非核心服务 

橙色风暴 —— 表示需要大规模降级非核心服务 

红色风暴 —— 表示必须降级所有非核心服务

 配置中心配置分级降级阀值,配置服务重要级别,网关监控服务架构负载程度,流量统计,当流量或负载超过阀值,系统进入那个状态。

补偿方案:

 采用事后补偿机制,可以自动或手动补偿。

1,熔断器采用延时队列记录降级服务写请求,等待服务打开,自动将延时队列中写请求时间间隔类分批发送至已打开的服务。 

2,熔断器中采用存储方式记录被降级服务写请求,通过登陆补偿管理界面,读补偿写请求,补偿线上数据;或者将请求降级的服务写请求,写入文件,通过脚本补偿

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享