在微服务架构中,通常会有多个服务层调用,如果某个服务不可用,导致故障,造成整个系统不可用的情况,被称为雪崩效应,如图所示,比如我这里有三个服务,A/B/C三个服务,其实中A会调用B服务,B又会调用C服务,加入B调用C服务的时候,由于某种原因呢,调用不成功,那么B就会一直重试,同步等待会资源耗尽,结果B服务也不可用了,紧接着因为A调用B,那B又不可用了,A又不停的重试B,最后呢C不可用,B不可用,A/B也不可用,这样子就导致整个系统都不可用了,当然这是非常糟糕的事情,所以雪崩效应是我们要极力避免的

Spring Cloud家族中,防雪崩的利器,就是Spring Cloud Hystrix,Spring Cloud Hystrix,也是基于Netflix,对应的开源框架,Hystrix实现的,Hystrix的中文意思呢,是豪猪,这猪在现实生活中还真没见过

所以我也不知道猪肉好不好吃,这豪猪身上长满了刺,能保护自己不受天敌的伤害,跟刺猬一样,代表的是一种防御的机制,这和Hystrix框架本身的功能,不谋而合,所以才起名这个名字,Hystrix的目的,就是为了给服务提供一系列容错保护机制,还记得Eureka的意思吗,Eureka这个单词翻译过来,其中有一个意思,就是找到了,你看Eureka是服务注册中心,找到了,很契合他的作用,所以这名字他还真不是随便起的,有他的意义在的,Spring Cloud Hystrix,具备服务降级,依赖隔离,服务熔断,监控等强大的功能

我们先来看看服务降级,服务降级说的好像很神秘一样,其实我们都遇到过,比如双十一的时候,会给出一个提示说,被挤爆了,你会看到某些APP,特别是秒杀的时候,提示你网络开销太大,请稍后再试,诸如此类的提示了,大家应该都有印象,服务降级指导思想,是要区分业务,具体是要优先核心服务,非核心服务不可用,或者弱可用,就有点保帅的意思,比如站在整个系统来看,假设我们的业务,突然涌入大量流量,服务器资源就这么多,那么我们应该优先选择商品订单,支付服务,这些是最核心的,你得保证这些核心服务可用,那另外比如广告啊,积分,属于非核心服务,这种业务暂时不提供服务,或者是提供部分服务,那其实也是可以接受的,再比如某个具体微服务中,就商品服务吧,那可能买家查询服务肯定是核心服务,优先保护她的可用,那卖家查询呢,就可能非核心服务,可以区别对待,这种就看你具体的业务场景了,Hystrix的应用降级,是非常简单,概括来讲,通过Hystrix Command注解来指定,fallbackMethod实现降级逻辑即可,我们具体来看看代码的实现

服务容错和Hystrix相关推荐

  1. 服务容错保护断路器Hystrix之二:Hystrix工作流程解析

    一.总运行流程 当你发出请求后,hystrix是这么运行的  详细解释个步骤 1.创建  HystrixCommand or HystrixObservableCommand Object   Hys ...

  2. 服务容错保护断路器Hystrix之七:做到自动降级

    从<高可用服务设计之二:Rate limiting 限流与降级>中的"自动降级"中,我们这边将系统遇到"危险"时采取的整套应急方案和措施统一称为降级 ...

  3. 服务容错保护Hystrix服务网关Zuul

    1.服务容错保护Hystrix 1.1.背景 在微服务架构中consumer调用provider的时候,provider在响应的时候,有可能会慢,如果provider 10s响应,那么consumer ...

  4. 白话SpringCloud | 第五章:服务容错保护(Hystrix)

    前言 前一章节,我们知道了如何利用RestTemplate+Ribbon和Feign的方式进行服务的调用.在微服务架构中,一个服务可能会调用很多的其他微服务应用,虽然做了多集群部署,但可能还会存在诸如 ...

  5. 服务容错保护断路器Hystrix之四:断路器监控(Hystrix Dashboard)-turbine集群监控

    turbine 英[ˈtɜ:baɪn] n. 汽轮机; 涡轮机; 透平机; OK,上文我们看了一个监控单体应用的例子,在实际应用中,我们要监控的应用往往是一个集群,这个时候我们就得采取Turbine集 ...

  6. hystrix 页面_SpringCloud微服务架构篇5:微服务熔断机制-Hystrix

    由于网络原因或者自身的原因,微服务并不能保证服务百分之百可用.如果单个服务出现问题,则调用该服务时会出现延迟甚至调用失败的情况:若调用失败,用户则会重新刷新页面并尝试再次调用,再加上其他服务的调用,从 ...

  7. Spring Cloud构建微服务架构:服务容错保护(Hystrix断路器)

    断路器 断路器模式源于Martin Fowler的Circuit Breaker一文."断路器"本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时," ...

  8. java版电子商务spring cloud分布式微服务b2b2c社交电商:服务容错保护(Hystrix断路器)...

    断路器 断路器模式源于Martin Fowler的Circuit Breaker一文."断路器"本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时," ...

  9. Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)【Dalston版】

    前言 在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖.由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服 ...

最新文章

  1. android游戏boss坐标,热血江湖手游boss刷新点坐标 boss刷新时间 _图文攻略_高分攻略_百度攻略...
  2. 保护模式及其编程——8086系统寄存器和系统指令
  3. Asymptote 学习记录(2):例子阅读
  4. Linux系统编程1:基础篇之Linux中使用率最高的一些命令
  5. Python String:一文彻底粉碎字符串
  6. java ee笔试题_【JAVA秒会技术之秒杀面试官】JavaEE常见面试题(六)
  7. 真实的产品案例:实现文档边缘检测
  8. IteratorX 正式开源:超好用的 jdbc reader
  9. HDU 2222 Keywords Search(AC自动机)题解
  10. java基础之测试类
  11. 盖洛普优势识别器2.0-《现在.发现你的优势》升级版
  12. 八进制数转换为十进制计算机在线,在线十进制转成八进制
  13. Mac加显示器桌面排列设置
  14. Android推送技术总结
  15. 硬盘的Smart信息说明
  16. 长理2019选拔赛1.0
  17. 基于51单片机自动数字电压表PCF8591 TLC2543 TL548 proteus仿真汇编程序设计
  18. 2019机器学习框架之争:与Tensorflow竞争白热化,进击的PyTorch赢在哪里?
  19. Compute Shader次世代优化方案
  20. 度过有意义的生命(下)

热门文章

  1. 数据切分——Atlas读写分离Mysql集群的搭建
  2. require(),include(),require_once()和include_once()的异同
  3. web性能压测——webbench
  4. 如何基于asp.net core的Identity框架在mysql上作身份验证处理
  5. 操作技巧——查看端口是否被占用
  6. 搞懂function(*args,**kwargs)
  7. ubuntu无线网络开关
  8. [Z]如何使用OpenGL扩展
  9. TextSwitcher--文本切换器
  10. Windows Phone 7 MVVM模式数据绑定和传递参数