zoukankan      html  css  js  c++  java
  • 微服务-SpringCloud学习系列(五): 熔断保护Hystrix

     在不同服务调用的时候(也存在多级调用),如果服务消费者所调用的服务提供者因为某些原因而无法即使响应,那么服务消费者将被挂起(不能正确执行,占用资源,当Web容器的空闲线程被占用完时,后续所有请求将都不能执行),即服务雪崩效应,可以通过服务隔离,熔断降级,服务限流等方式进行解决。

    1.服务隔离

     通常通过线程池隔离或者信号量隔离的方式实现服务隔离,让服务故障不能传递到其他服务中,将出现故障的服务单独隔离起来。

     2.熔断降级

    如果发现某个服务出现鼓掌,将故障的服务从服务列表中剔除(这个过程称为服务熔断),然后模拟返回友好的提示结果(这个过程称为服务降级)。

    3.服务限流

    服务限流时服务降级的一种,通过设置系统的吞吐量的阈值,对流量进行限制。

    4.Hystrix

     5.Hystrix对RestTemplate的支持

    ①引入依赖

     ②启动类激活,在启动类使用@EnableCircuitBreaker注解

    ③配置降级逻辑

    ④在需要受到保护的接口上增加@HystrixCommand注解

    上述是单个熔断配置,通过@DefaultProperties注解实现全局统一的熔断配置。

    统一的熔断配置有两点需要注意:defaultFallback指定的方法不能有参数,类中的方法定义统一的返回值(因为fallback的方法返回值要求与原有方法的返回值一致)。

     ⑤如何修改熔断配置

     6.Hystrix对Feign的支持

    ①引入依赖(Feign中已经集成了Hystrix,可以不用额外引入)

    ②在Feign中开启Hystrix

     ③自定义一个接口实现类,作为熔断的降级逻辑类

     ④在Feign接口配置对Hystrix的降级实现类

     7.Hystrix的监控平台actuator和Dashboard

    ①引入依赖actuator,启动类增加@EnableCircuitBreaker注解

     ②添加配置信息,暴露所有端点(默认只暴露其中几个),然后可以通过http://127.0.0.1:port/actuator/hystrix.stream获取Hytrix的实时文本数据。

     ③搭建Dashboard(引入依赖dashboard)

    ④在启动类增加@EnableHystrixDashboard注解,然后就可以通过http://127.0.0.1:port/hystrix访问监控界面,输入http://127.0.0.1:port/actuator/hystrix.stream对指定服务的熔断信息收集并展示。

     8.Hystrix监控的聚合平台Turbine

     收集每一个服务的Hystrix信息,并进行整合。

    ①需要单独的搭建一个Turbine服务用于收集Hystrix信息

    ②引入依赖

     ③配置微服务的Hystrix监控

     ④在启动类增加@EnableTurbine注解,然后http://127.0.0.1:port/hystrix访问监控界面,输入http://127.0.0.1:port/turbine.stream展示聚合的监控信息。

    9.Hystrix的断路器

     Hystrix通过切换断路器的状态,来确定是否执行降级方法。

    Hystrix的熔断器配置

     Hystrix的隔离策略配置(支持线程池隔离和信号量隔离)

     10.总结

    学习Hystrix的配置,降级处理,聚合监控,以及熔断器隔离策略的配置

    Hystrix的源码分析参考(http://www.uml.org.cn/wfw/201906063.asp?artid=22057)。

  • 相关阅读:
    HttpWebRequest、HttpWebResponse简单Demo
    向虚拟机发短信(android SMS 调试)
    双系统时间相关8小时
    电脑开机报警声
    Windows Live Writer 代码插件
    配置Linux防火墙
    配置yum源方法,以及失效时的处理
    xp系统下硬盘安装centos6.5
    Android 四大组件 与 MVC 架构模式
    elasticsearch GIS空间查询问题解决
  • 原文地址:https://www.cnblogs.com/masting/p/12825098.html
Copyright © 2011-2022 走看看