SpringCloud基础之断路器
1.断路器
在微服务架构中,存在着多个微服务,彼此之间可能存在依赖关系,当某个单元出现故障或者网络不通时,就会因为依赖关系形成故障蔓延,最终导致整个系统的瘫痪,相对于传统架构更加不稳定。为了解决这样的问题,因此产生了断路器模式。
断路器本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时切断故障电源,防止发生过载、发热甚至起火等严重后果。
在分布式架构中,断路器模式的作用是类似的,当某个微服务发生故障时,通过断路器的故障监控,向调用方返回一个错误响应,而不是长时间的等待,这样就不会使得线程因调用故障服务被长时间占用不释放,避免了故障在分布式系统中的蔓延。
Netflix Hystrix
在Spring Cloud中使用了Hystrix来实现断路器的功能。Hystrix是Netflix的分布式套件之一,该框架目标在于通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能。
在前文中,已经创建过服务注册中心,两个服务提供者,两个服务消费者。
断路器工作原理
服务端的服务降级逻辑会因为hystrix命令调用依赖服务超时而触发,也就是说调用服务超时会进入断路回调逻辑处理。但是即使这样,受限于Hystrix超时时间的问题,调用依然会有可能产生堆积。
这个时候断路器就会发挥作用。这里涉及到断路器的三个重要参数:
快照时间窗
断路器确定是否打开需要统计一些请求和错误数据,而统计的时间
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
