在讲解Hystrix之前,首先要清楚雪崩效应、服务雪崩、熔断机制这几个服务熔断概念。

服务熔断-雪崩效应

在一些比较复杂的系统会出现A依赖B,B依赖C,C依赖D的情况,产生很长的调用链路,这种复杂的调用链路被称为1->N的扇出。如果在调用链路上,有一个或者几个被调用的服务出现问题(不可用、延迟过高等问题)会导致调用A服务的请求被堵住。这时A服务仍然会占用系统线程、IO等资源,如果A服务请求继续增加,系统出现瓶颈导致其他请求不可用,最终业务系统崩溃,这就是雪崩效应。

服务熔断-服务雪崩

用户请求需要访问A、P、H、I服务。如果资源I出现了问题,用户请求就会发生等待(网络带宽被占用)。如果资源在短时间内访问数量很大,将会有大量的网络带宽、消费者线程被占用。这种发生在分布式SOA系统中的雪崩效应被称为服务雪崩。

服务熔断-熔断机制

熔断机制是一种有效解决服务雪崩的方案。常见的熔断有两种,一种是预熔断,另一种是即时熔断。

预熔断也叫提前熔断,根据以往的经验能够提前预料到在某个时段中会出现峰值,为了保证基本的功能正常使用,通过服务治理,预先把不是很紧急的访问权限暂停。

即时熔断是在非预计情况下,在某个时间段中消费者对于提供者的请求失败率达到一定阈值的时候,消费者和提供者的访问链路会断开。

服务降级

熔断在用户看来体验很差,为了提升用户体验就要进行服务降级。发生服务熔断就一定要服务降级,服务降级不一定发生了服务熔断。

在埋点处给出温馨提示,提升用户体验。

Hystrix简介

从官网上可以看到,在分布式环境中,许多服务依赖中的一些服务发生失败是不可避免的。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止跨服务的级联故障以及提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。

也就是说Hystrix是一种类似于熔断保险丝的开关装置。在消费者端安装一个Hystrix熔断器。当Hystrix监控到某个服务发生故障后熔断器就会开启,将此服务访问链路断开。不过Hystrix并不会将该服务的消费者阻塞,或向消费者抛出异常,而是向消费者返回一个符合预期的备选响应(FallBack)。

通过Hystrix的熔断与降级功能,避免了服务雪崩的发生,同时也考虑到了用户体验,故Hystrix是系统的一种防御机制。

什么是Hystrix,Hystrix简单概述相关推荐

  1. Hystrix 资料简单梳理

    2019独角兽企业重金招聘Python工程师标准>>> Hystrix 资料简单梳理 状态 Hystrix不再处于活动开发阶段,目前处于维护模式. Hystrix(版本1.5.18) ...

  2. 8086CPU相关汇编语言的简单概述

    8086CPU相关汇编语言的简单概述 1.寄存器 通用寄存器 8806CPU给出物理地址的方法 段寄存器 修改CS,IP的指令 2.寄存器(内存访问) 栈机制 3.[BX]和loop指令 [BX] l ...

  3. XSS漏洞简单概述--UGa

    XSS漏洞简单概述–UGa 个人笔记向,请多指点 *简介 XSS作为OWASP TOP 10之一,XSS被称为跨站脚本攻击(Cross-site scripting) ,本来应该缩写为CSS,但是由于 ...

  4. SpringSecurity的简单概述以及配置SpringSecurity的默认登录页面

    SpringSecurity的简单概述 是什么:SpringSecurity融合Spring技术栈,提供JavaEE应 用的整体安全解决方案:提供全面的安全服务 有什么用:可以进行身份验证,就是证明你 ...

  5. 关于“7个好习惯”的简单概述

    Title: 关于"7个好习惯"的简单概述 Content: 同事发给的,共勉. 下面是关于"7个好习惯"的简单概述,与大家分享一下,希望对大家.对我们的团队有 ...

  6. 计算机底层:计算机层次结构(高级语言到低级语言的简单概述)

    计算机底层:计算机层次结构(高级语言到低级语言的简单概述): 操作系统可以有效地分配任务给cpu,控制硬件进行搞效率地使用等等,创造操作系统主要是为了满足两大需求:提高资源利用率.增强计算机系统性能. ...

  7. Hadoop的简单概述以及架构

    Hadoop的简单概述以及架构 1.hadoop概述:hadoop是一个适合海量数据分布式存储和分布式计算的平台. 2.hadoop是一个统称,hadoop主要包含三大组件: (1)hdfs:是一个分 ...

  8. 垃圾回收器(简单概述)

    垃圾回收器(简单概述) GC分类与性能指标 垃圾回收器概述 垃圾收集器没有在规范中进行过多的规定,可以由不同厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今衍生 ...

  9. java虚拟机-简单概述(五月的仓颉)

    1  java的简单概述 java版本介绍 1.Java SE(标准版),主要活跃在桌面领域,主要包含了Java API组件. 2.Java EE(企业版),活跃在企业级领域,除了包含Java API ...

最新文章

  1. php 中文 处理,PHP处理中文字符串截取
  2. HTML CSS简介与图片映射
  3. java数组深拷贝和浅拷贝_java中的深拷贝与浅拷贝(值类型 vs 引用类型)
  4. php 逗号编码,php有几种编码
  5. 2018年12月计算机一级试题答案,2018年12月计算机一级MSOffice冲刺题及答案(7)
  6. java约瑟夫环迭代器_Josephus约瑟夫环问题的不同实现方法与总结
  7. Angularjs 观察者模式 理解
  8. Power BI Desktop中的“提问”功能
  9. 苹果就降速门道歉,将 iPhone 电池更换价格下调至 218 元!
  10. 2014 Louis Vuitton 40769 apricot NevadaJack Nicklaus
  11. 指令篇:文件的创建和时间修改___touch
  12. Solidity教程序列1 - 类型介绍
  13. HP喷墨打印机墨盒清零
  14. 少林禅医:姜是无上养生物,谨慎使用大智慧
  15. C语言中.和-的区别
  16. linux系统软路由软件,使用Linux+Zebra构建软路由系统
  17. 重新定义RPA,重塑智能生产力 | 云扩科技RPA论坛成功举办
  18. Apache Calcite入门
  19. 计算机替换字体怎么操作,电脑替换文字怎么操作
  20. 8、ARM嵌入式系统:UART初始化

热门文章

  1. [转载] python 时间sleep() 的方法
  2. elasticsearch监控平台cerebro-0.8.3 相关操作
  3. Safari导入Chrome书签
  4. python进阶之装饰器之5把装饰器作用到类和静态方法上
  5. Android ViewPager + Fragment实现滑动页面
  6. openCV+ASM+LBP+Gabor实现人脸识别(GT人脸库)
  7. 现在物价虽然高得离谱,但是内存条都白菜价格了,需要调整程序架构的思维“与时俱进” --- 改进系列之一...
  8. sqlserver 中怎样查看一个数据库中表的关系
  9. CS229-Lesson7最优间隔分类器
  10. 【OpenCV/C++】KNN算法识别数字的实现原理与代码详解