美文网首页
分布式弹力设计之降级

分布式弹力设计之降级

作者: Doit8 | 来源:发表于2018-04-11 23:02 被阅读0次

当系统遇到大的流量,为了能让系统健康的运行,我们会采取一些措施,上节课讲到的限流是一种方式,拒绝掉一些流量,今天讲另一种方式,降级,它的本质是在有限的资源下,处理尽量多的事情。

为了实现这个目的,需要在某些方面做牺牲。主要包含以下三个方面

1 降低一致性

流程的一致性,从原来的强一致性变为最终一致性,如电商下单的过程,先生成订单,扣减库存的操作做成异步,最后再通知用户下单是否成功。

数据的一致性,原先数据从数据库中读取,降级开始后,从缓存中读数据。

2 停止没必要的功能,在大流量的冲击下,可以暂时把不太重要的功能停掉,比如商品的评论功能,待流程恢复正常后再开启停止的功能。

3 简化功能,对一些功能进行裁剪,提供一个精简版的实现,例如商品展示页面,不展示商品的评论数据,与该商品关联的推荐商品的展示先去掉等等。在不影响最重要的最核心的业务流程情况下,适当的去除一些附加的业务。

以上是降级的思路。下面总结下在设计降级时的几个要点。

1 梳理业务,分清业务的重要程度

2 定义好降级的触发条件,如响应时间过长,失败请求过多等等。

3 降级的开关可以设置手动开启,或者可由上游系统控制,比如在协议头部加入降级标志。

相关文章

  • 分布式弹力设计之降级

    当系统遇到大的流量,为了能让系统健康的运行,我们会采取一些措施,上节课讲到的限流是一种方式,拒绝掉一些流量,今天讲...

  • 弹力设计之降级设计

    所谓的降级设计(Degradation),本质是为了解决资源不足和访问量过大的问题。当资源和访问量出现矛盾的时候,...

  • 第二章架构设计之技术实践篇(下)

    本章要点 分布式事务设计与实践 服务降级设计 服务限流/熔断设计 服务灰度发布设计 1.分布式事务设计与实践 分布...

  • 分布式弹力设计之熔断

    前言 熔断机制的灵感来源于保险丝,我们知道家里的电路中有个保险丝,当用电过载或是短路时,保险丝熔断,切断电路,避免...

  • 分布式弹力设计之服务状态

    今天我们来谈一谈服务的状态,服务的状态指的是请求是否与不同的服务实例相关。分为两种,有状态和无状态。 无状态服务重...

  • 分布式弹力设计之异步通信

    讲到异步通信,不得不先提同步通信,如果把打电话比做同步,那短信就是异步。同步操作有个优点,实时性好,但存在以下问题...

  • 分布式弹力设计总结

    分布式弹力设计的目的 保证服务的弹力,从两个方面体现,一是出现故障时能够自恢复,另一方面是在无法自愈的情况下,将范...

  • 分布式弹力设计之幂等性

    分布式服务之间不可避免要相互通信,通信的结果有三种:成功,失败,超时。而超时状态,有可能是接收方没有接受到数据,另...

  • 分布式弹力设计之重试机制

    重试机制的使用场景 重试的前提是认为故障是暂时的,不是永久的,所以重试才有意义。 使用重试机制是必须要明确哪些错误...

  • 弹力设计之重试设计

    关于重试,这个模式应该是一个很普遍的设计模式了。当我们把单体应用服务化,尤其是微服务化,本来在一个进程内的函数调用...

网友评论

      本文标题:分布式弹力设计之降级

      本文链接:https://www.haomeiwen.com/subject/xmdtkftx.html