笔记:
第五章 互联网架构服务降级熔断 Hystrix 实战 1、分布式核心知识之熔断、降级讲解 简介:系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案 1、熔断: 保险丝,熔断服务,为了防止整个系统故障,包含子和下游服务 下单服务 -》商品服务 -》用户服务 (出现异常-》熔断) 2、降级: 抛弃一些非核心的接口和数据 旅行箱的例子:只带核心的物品,抛弃非核心的,等有条件的时候再去携带这些物品 3、熔断和降级互相交集 相同点: 1)从可用性和可靠性触发,为了防止系统崩溃 2)最终让用户体验到的是某些功能暂时不能用 不同点 1)服务熔断一般是下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制开始
订单里面有userName 还需要去调用用户的的服务
我们现在还没有开发用户服务,我们现在先假定有用户服务。这里需要去调用用户的服务获取userName
生成订单的时候,调用用户的服务,用户服务机房网络中断,无法链接。造成无法下单。 调用用户服务一直失败,触发熔断。订单调用用户服务几次失败后,有一个阀值,例如有50%的记录失败的话就标记当前这个服务不可用,那么后后续其他请求进来的时候就不再去调用了。直接调用商品的服务保存到数据库里,这里就没再调用用户的服务。调用用户服务会出现异常或者响应延迟 这是一个有损的,不调用用户服务一样可以完成下单,我们当前这里例子里面有userId也是可以标明用户的,。只不过是拿不到用户的会员信息和用户名称 。这是当前的这个例子而言 这样用户一样可以完成下单,如果没有熔断的话,可能就一直调用用户服务,一直失败,无法完成下单 有了熔断,不再去调用用户服务一样完成基本的操作下单,只不过拿不到会员信息。 用户服务不止是订单服务去调用还可能给其他业务系统调用,可能给登陆服务,手机端app等都会调用用户的服务。做熔断,防止不可用。降级
抛弃一些非核心的接口和数据
例如双11的时候够买一个商品。真正核心的是商品的信息销量和库存,只返回核心的,非核心的相关推荐啊之类的 就可以过了高峰期过了之后再返回 对用户而言能完成的正常的下单流程。非核心的相关推荐等被抛弃熔断和降级
相同点:
1)从可用性和可靠性触发,为了防止系统崩溃 2)最终让用户体验到的是某些功能暂时不能用 不同点 1)服务熔断一般是下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制