数据库降级_高可用必知必会:一次性说透降级

b5d0f287e317c7f9552874640076b3cd.png

什么是降级

不知道你有没有发现,在系统设计中,特别是高可用模块,和生活里的一些博弈策略息息相关,不是一个纯技术领域的工作。

比如在中国象棋策略中有个成语叫作「丢车保帅」,和服务降级有异曲同工之妙。敌人已经攻打过来了,这时候赶紧丢弃一些军备,集中人力保护我方元帅不被将军,争取下次还能卷土重来!

而服务降级就是放弃一些非关键功能,保证整体系统的运行。

降级的应用场景

比如在大促场景下,请求量剧增,可我们的系统资源是有限的,服务器资源是企业的固定成本,这个成本不可能无限扩张,所以说,降级是解决系统资源不足和海量业务请求之间的矛盾。

降级的具体实现手段是,在暴增的流量请求下,对一些非核心流程业务、非关键业务,进行有策略的放弃,以此来释放系统资源,让更多的机器资源承载主要的业务请求。

我们自己会有体验:电商大促时限制退款,但平时并不会限制。服务降级不是一个常态策略,而是应对非正常情况下的应急策略。

服务降级的结果,通常是对一些业务请求,返回一个统一的结果,你可以理解为是一种 FailOver 快速失败的策略。

举个例子,我们都有在 12306 网站购票的经历。在早期春运抢票时,会有大量的购票者进入请求,如果火车票服务不能支撑,那是直接失败好呢,还是返回一个空的信息好呢?

一般都会返回一个空的信息。这其实是一种限流后的策略,我们从一个广义的角度去理解,限流也是一种服务降级手段,是针对部分请求的降级。

一般来说,降级针对的目标是业务闭环中的一些次要功能,比如大促时的评论、退款功能,从一致性的角度,因为强一致性的保证需要很多系统资源,降级可能会降低某些业务场景的一致性。

降级如何操作?

具体在进行服务降级操作时,要注意哪些点呢?

  1. 要注意梳理核心流程,知道哪些业务是可以被牺牲的,比如双十一大家都忙着抢购,这时候一些订单评论之类的边缘功能,就很少有人去使用。

  2. 要明确开启时间,在系统水位到达一定程度时开启。降级一般是通过配置的形式,做成一个开关,在高并发的场景中打开开关,开启降级。


阅读推荐:

高并发场景下如何实现系统限流?

Java框架王者之战:Dubbo VS Spring Cloud

MySQL 数据库如何实现 XA 规范?

说到分布式,重要的Paxos算法你看透了么?

Java十年了,转行做视频能挣多少?

dda43686815fd35aa8f30bd4059c0e6a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值