笔记:

第五章 互联网架构服务降级熔断 Hystrix 实战

1、分布式核心知识之熔断、降级讲解
    简介:系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案

1、熔断:
        保险丝,熔断服务,为了防止整个系统故障,包含子和下游服务

下单服务 -》商品服务
                -》用户服务 (出现异常-》熔断)

2、降级:
        抛弃一些非核心的接口和数据

旅行箱的例子:只带核心的物品,抛弃非核心的,等有条件的时候再去携带这些物品

3、熔断和降级互相交集
        相同点:
            1)从可用性和可靠性触发,为了防止系统崩溃
            2)最终让用户体验到的是某些功能暂时不能用

不同点
            1)服务熔断一般是下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制

开始

订单里面有userName 还需要去调用用户的的服务

我们现在还没有开发用户服务,我们现在先假定有用户服务。这里需要去调用用户的服务获取userName


生成订单的时候,调用用户的服务,用户服务机房网络中断,无法链接。造成无法下单。

调用用户服务一直失败,触发熔断。订单调用用户服务几次失败后,有一个阀值,例如有50%的记录失败的话就标记当前这个服务不可用,那么后后续其他请求进来的时候就不再去调用了。直接调用商品的服务保存到数据库里,这里就没再调用用户的服务。调用用户服务会出现异常或者响应延迟 这是一个有损的,不调用用户服务一样可以完成下单,我们当前这里例子里面有userId也是可以标明用户的,。只不过是拿不到用户的会员信息和用户名称 。这是当前的这个例子而言

这样用户一样可以完成下单,如果没有熔断的话,可能就一直调用用户服务,一直失败,无法完成下单
有了熔断,不再去调用用户服务一样完成基本的操作下单,只不过拿不到会员信息。
用户服务不止是订单服务去调用还可能给其他业务系统调用,可能给登陆服务,手机端app等都会调用用户的服务。做熔断,防止不可用。

降级

抛弃一些非核心的接口和数据
例如双11的时候够买一个商品。真正核心的是商品的信息销量和库存,只返回核心的,非核心的相关推荐啊之类的 就可以过了高峰期过了之后再返回

对用户而言能完成的正常的下单流程。非核心的相关推荐等被抛弃

熔断和降级

相同点:
            1)从可用性和可靠性触发,为了防止系统崩溃
            2)最终让用户体验到的是某些功能暂时不能用

不同点
            1)服务熔断一般是下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制

小D课堂 - 新版本微服务springcloud+Docker教程_5-01分布式核心知识之熔断、降级的更多相关文章

  1. 小D课堂 - 新版本微服务springcloud+Docker教程_汇总

    小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...

  2. 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介

    笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...

  3. 小D课堂 - 新版本微服务springcloud+Docker教程_3-02CAP理论知识

    笔记 2.分布式应用知识CAP理论知识     简介:讲解分布式核心知识CAP理论 CAP定理:             指的是在一个分布式系统中,Consistency(一致性). Availabi ...

  4. 小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响

    笔记 4.SpringCloud微服务核心组件Eureka介绍和闭源后影响     简介:         SpringCloud体系介绍             官方地址:http://projec ...

  5. 小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心

    笔记 第三章 SpringCloud核心组件注册中心 1.什么是微服务的注册中心     简介:讲解什么是注册中心,常用的注册中心有哪些 (画图)                  理解注册中心:服务 ...

  6. 小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计

    笔记 4.微服务下电商项目基础模块设计     简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习             小而精的方式学习微服务 1.用户服务       ...

  7. 小D课堂 - 新版本微服务springcloud+Docker教程_2_03常见的微服务框架

    笔记 3.常见的微服务框架     简介:讲解常用的微服务框架 consumer: 调用方         provider: 被调用方         一个接口一般都会充当两个角色(不是同时充当) ...

  8. 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建

    笔记 6.Zuul微服务网关集群搭建     简介:微服务网关Zull集群搭建 1.nginx+lvs+keepalive      https://www.cnblogs.com/liuyisai/ ...

  9. 小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景

    笔记 第六章 微服务网关zuul开发实战 1.微服务网关介绍和使用场景     简介:讲解网关的作用和使用场景 (画图)          1)什么是网关         API Gateway,是系 ...

随机推荐

  1. 利用commands模块执行shell命令

    利用commands模块执行shell命令 用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态 ...

  2. Hadoop_21_MapReduce程序实现Join功能

    1.序列化与Writable接口 1.1.hadoop的序列化格式 序列化和反序列化就是结构化对象和字节流之间的转换,主要用在内部进程的通讯和持久化存储方面 hadoop在节点间的内部通讯使用的是RP ...

  3. centos7支持exfat

    centos7支持exfat https://blog.csdn.net/shile/article/details/52202030 sudo rpm -Uvh http://li.nux.ro/d ...

  4. 用JavaScript更新CSS变量

    HTML <div class="mover"></div> CSS .mover { width: 50px; height: 50px; backgro ...

  5. CentOS 6 多实例 编译安装mariadb-5.5.59

    系统平台: CentOS release 6.9 (Final) 内核 2.6.32-696.el6.x86_64 1.去官网下载适合的源码包 http://mariadb.org/ mariadb- ...

  6. zendstudio zenddebug 调试技巧

    毋庸置疑debugger软件减轻了程序员的负担. 最近使用php开发,感觉没有开发C#时的爽快了,原因就是debugger似乎因为商业目的(zend server的原因) zend debugger ...

  7. 巧用 Img / JavaScript 采集页面数据

    摘要: 当我们有一个新内容时(例如新功能.新活动.新游戏.新文章),作为运营人员总是迫不及待地希望能尽快传达到用户,因为这是获取用户的第一步.也是最重要的一步. 点此查看原文:http://click ...

  8. Vue完成页面切换中加载数据

    created() { // 拿到路由传递来的car主键 let pk = this.$route.query.pk || this.$route.params.pk; // 主键不存在,就直接结束方 ...

  9. 计算机网络|C语言Socket编程,实现两个程序间的通信

    C语言Socket编程,实现两个程序间的通信 server和client通信流程图 在mooc上找到的,使用Socket客户端client和服务端server通信的流程图

  10. 12 saltstack部署OpenStack

    参考源码:https://github.com/unixhot/salt-openstack nova control.sls