zoukankan      html  css  js  c++  java
  • 服务熔断Hystrix

    简述

      在微服务架构中,客户端访问A服务,而A服务需要调用B服务,B服务需要调用C服务,由于网络原因或者自身的原因,如果B服务或者C服务不能及时响应,A服务将处于阻塞状态,直到B服务C服务响应。此时若有大量的请求涌入,容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,造成连锁反应,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。

      雪崩的根本原因来源于服务之间的强依赖,所以我们可以提前评估,做好熔断,隔离,限流。

    熔断降级

      熔断这一概念来源于电子工程中的断路器(Circuit Breaker)。在互联网系统中,当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。这种牺牲局部,保全整体的措施就叫做熔断。 

    Hystrix

      Hystrix是由Netflflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。SpringCloud Fegin默认已为Feign整合了hystrix,所以添加Feign依赖后就不用再添加hystrix。

    Hystrix简单使用

      Hystrix已经和fegin整合所以配合fegin使用Hystrix非常方便,我们只需创建fegin服务调用接口的实现类,重写fegin的方法,这里的方法重写的就是Hystrix用于服务降级的方法

      然后我们只需在fegin接口进行一个注解配置,指定该接口的实现类

      这样当调用的下游微服务不可用的时候,就会自动触发这个服务降级方法,达到熔断的机制。

     

     

       

    一点一点积累,一点一点蜕变!
  • 相关阅读:
    bzoj 2152: 聪聪可可 树的点分治
    Contest 20141027 总结
    bzoj 3505: [Cqoi2014]数三角形 组合数学
    bzoj 3624: [Apio2008]免费道路 生成树的构造
    tyvj P1075
    poj 2778 DNA Sequence AC自动机
    poj 2778 DNA Sequence AC自动机DP 矩阵优化
    bzoj 3626: [LNOI2014]LCA 离线+树链剖分
    BZOJ 1412: [ZJOI2009]狼和羊的故事【网络流】
    ACDream:1210:Chinese Girls' Amusement【水题】
  • 原文地址:https://www.cnblogs.com/qq2210446939/p/15088132.html
Copyright © 2011-2022 走看看