【金秋打卡】第13天 构建微服务设计架构知识体系--服务降级
2022/11/8 3:24:04
本文主要是介绍【金秋打卡】第13天 构建微服务设计架构知识体系--服务降级,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:海量数据高并发场景,构建Go+ES8企业级搜索微服务
课程章节:5-7
课程讲师:少林码僧
课程内容:
什么是降级
通过降低回复调用方的质量来减少系统的工作量
比如,当推荐系统出问题,可以直接返回预设的一些默认商品展示
比如,可以预先设置一些缓存,在服务降级后,返回这些缓存,尽管质量不高,但是能用
暂时关闭一些功能也是降级的一种服务,比如,在双十一的时候,会暂时关闭退款退货窗口
通过熔断避免服务雪崩
有损的降级
局部故障引发全局故障,我们称之为 雪崩
比如,在电商项目中,登录,订单都是核心服务,而消息队列可能不是核心服务,核心服务调用其他的非核心服务资源不足导致核心服务被阻塞,比如订单系统调用消息队列,但是消息队列阻塞或者崩了,订单无法完成
比较常见的降级就是断路器模式。当失败累计到一定次数,断路器打开,在断路器关闭服务到一定时间,进入半开状态,放行部分请求,如果请求再次出现失败,并且累计一定次数,断路器进入全开模式,禁止任何请求。如果半开状态下,成功达到一定次数,则断路器关闭,放行所有流量。
通常那些情况需要触发降级
依赖服务不可用
响应的时间过长
吞吐量过大(IO/流量)
降级的实现方式
对服务进行顶级,尽可能让非核心服务先降级,可以通过一个全局的配置来约定服务级别,服务降级的条件,服务降级的恢复条件,
降低返回结果的准确度
请求短路,不走DB,直接给缓存
简化流程,放弃部分操作,比如下单后不立即通知
延迟执行
关闭某些功能或者定时脚本
降级需要考虑的问题
定期小规模演练和测试,保证功能正常
降级条件不应该过于苛刻,不应该经常被处罚
降级应该有通知,下游调用方应该能感知并被告知服务降级
课程收获
这篇关于【金秋打卡】第13天 构建微服务设计架构知识体系--服务降级的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24Java中定时任务实现方式及源码剖析
- 2024-11-24鸿蒙原生开发手记:03-元服务开发全流程(开发元服务,只需要看这一篇文章)
- 2024-11-24细说敏捷:敏捷四会之每日站会
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解