Hystrix—熔断器

Python045

Hystrix—熔断器,第1张

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,已提高分布式系统的弹性。

在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用(RPC)。为了保证其高可用,单个服务有必须集群部署。由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务累计,导致服务瘫痪,甚至导致服务“雪崩”。为了解决这个问题出现了短路器,相当于现实生活中的保险丝。

多个服务之间调用的时候,假设服务A调用服务B和服务C,服务B和服务C又调用其他的服务,这就是所谓的“扇出”。如果“扇出”的链路上某个服务调用响应时间过长或者不可用,对服务A的调用就会占用越来越多的系统资源,

要避免这样的级联故障,就需要有一种链路中断的方案:

服务降级、服务熔断

资源隔离主要指对线程的隔离。Hystrix提供了两种线程隔离方式:线程池和信号量

Hystrix通过命令模式对发送请求的对象和执行请求的对象进行解耦,将不同类型的业务请求封装为对应的命令请求。如订单服务查询商品,查询商品请求->商品Command;商品服务查询库存,查询库存请求->库存Command。并且为每个类型的Command配置一个线程池,当第一次创建Command时,根据配置创建一个线程池。

通常情况下,线程池引入的开销足够小,不会有重大的成本或性能影响。但对于一些访问延迟极低的服务,如只依赖内存缓存,线程池引入的开销就比较明显了,这时候使用线程池隔离技术就不适合了,我们需要考虑更轻量级的方式,如信号量隔离。

线程池隔离技术引入的开销超过了它所带来的好处。这时候可以使用信号量隔离技术来代替,通过设置信号量来限制对任何给定依赖的并发调用量。

线程池和信号量都支持熔断和限流。相比线程池,信号量不需要线程切换,因此避免了不必要的开销。但是信号量不支持异步,也不支持超时,也就是说当所请求的服务不可用时,信号量会控制超过限制的请求立即返回,但是已经持有信号量的线程只能等待服务响应或从超时中返回,即可能出现长时间等待。线程池模式下,当超过指定时间未响应的服务,Hystrix会通过响应中断的方式通知线程立即结束并返回。

服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。

服务降级是从整个系统的负荷情况出发和考虑的,对某些负荷会比较高的情况,为了预防某些功能(业务场景)出现负荷过载或者响应慢的情况,在其内部暂时舍弃对一些非核心的接口和数据的请求,而直接返回一个提前准备好的fallback(退路)错误处理信息。这样,虽然提供的是一个有损的服务,但却保证了整个系统的稳定性和可用性。

目标一致 都是从可用性和可靠性出发,为了防止系统崩溃;

用户体验类似 最终都让用户体验到的是某些功能暂时不可用;

触发原因不同 服务熔断一般是某个服务(下游服务)故障引起,而服务降级一般是从整体负荷考虑;

参考博文: https://blog.csdn.net/loushuiyifan/article/details/82702522

表示通道。

电路符号:

1、电流表 PA

2、电压表 PV

3、有功电度表 PJ

4、无功电度表 PJR

5、频率表 PF

电路图有原理图、方框图、装配图和印板图等。

电路图指用电路元件符号表示电路连接的图。电路图是人们为研究、工程规划的需要,用物理电学标准化的符号绘制的一种表示各元器件组成及器件关系的原理布局图。由电路图可以得知组件间的工作原理,为分析性能、安装电子、电器产品提供规划方案。

扩展资料

单元电路图具有下列一些特点:

①单元电路图主要是为了分析某个单元电路工作原理的方便而单独将这部分电路画出的电路,所以在图中已省去了与该单元电路无关的其他元器件和有关的连线、符号,这样单元电路图就显得比较简洁、清楚,识图时没有其他电路的干扰。

②单元电路图采用习惯画法,一看就明白,例如元器件采用习惯画法,各元器件之间采用最短的连线,而在实际的整机电路图中,由于受电路中其他单元电路中元器件的制约;

有关元器件画得比较乱,有的在画法上不是常见的画法,有的个别元器件画得与该单元电路相距较远,这样电路中的连线很长且弯弯曲曲,造成识图和电路工作原理理解的不便。

③单元电路图只出现在讲解电路工作原理的书刊中,实用电路图中是不出现的。对单元电路的学习是学好电子电路工作原理的关键。只有掌握了单元电路的工作原理,才能去分析整机电路。

参考资料来源:百度百科-电路图

熔断器的型号说明:R (1)( 2 )—(3 / 4) R表示低压熔断器;(1) 表示形式:T—有填料封闭管式、L—螺旋式、S—快式、LS—螺旋快式、 M—无填料封闭管式、C—插入式;(2) 设计代号;(3) 熔断器、支持件额定电流;(4) 熔断体额定电流。