1.熔断机制
1.是什么?
在微服务中,在访问某一目标服务并发量超过该应用的上限,服务请求堵塞,导致其他依赖服务无法被使用,最后系统崩溃(雪崩效应),而在此时对服务执行隔离或拒绝访问,等待服务恢复的一种保护手段。
2.实现-断路器模式
将受保护的服务对象封装在一个可以监控故障的断路器对象中,当故障达到一定门限时,断路器将跳闸,所有后续调用将不会发往受保护的服务,由断路器对象进行处理,返回错误消息。
3.应用场景(目的)
1.阻止应用反复尝试可能失败的操作
2.提高服务的可用性和容错性
4.断路器工作原理
-
断路器相当于可能失败的操作的代理,熔断后的处理者
微服务-熔断机制
- 1.关闭(closed)状态
1.代理维护着一段时间内请求某个服务请求的失败次数(故障计数器),当改次数超过指定的阈值,代理被打开并接管请求的处理。
2.代理被打开后,熔断机制启动,此时代理启动一个超时定时器,当熔断时间超过这个时间后,代理会变成半开状态
3.超时计时器:为了让系统有时间解决导致失败的问题,然后再允许应用程序执行再次尝试访问操作。
- 2.打开(open)状态
来自应用程序的请求失败,将异常返回给应用程序。
- 3.半开(half-open)状态
1.当代理进入该状态,会允许有限数量的请求访问,若请求成功,即认为故障已清除,熔断器切换至关闭状态,故障计数器重置。
2.若有任何请求失败,则熔断器切换至打开状态,超时计时器从新启动。
3.当服务恢复时,可能能够支持有限请求量,直至恢复完成,所以在进行恢复的期间,大量请求可能导致服务超时或再次失败。
- 注意点
系统恢复的方式:可以通过恢复或重启故障组件或修复网络连接来进行外部处理。
5.熔断模式与重试模式
- 故障的种类
1.瞬时故障
慢的网络连接,超时,资源过度使用导致暂时不可用
2.不可预见突发故障
程序隐藏bug,机器出问题等
- 故障的处理
1.对于瞬时故障,可以通过重试模式来解决
2.断路器模式
- 两者区别
1.重试模式在程序可以预见成功的情况下使用
2.断路器模式阻止应用程序执行可能的失败
3.两者可以结合使用。
2.降级机制
1.是什么?
当某一服务出现堵塞时 ,根据不同服务的业务的层级,采取关闭或处理一些不重要的服务,来缓解服务器压力,留出更多的服务器资源,保证核心服务能够顺利完成。降级操作可能需要人工干预。
2.熔断与降级的区别
1.熔断一般是某个服务发生故障引起的,而服务降级是从整体的负荷考虑的。
2.熔断是对服务的一种保护的处理手段,服务间并没有层级之分,而降级服务是根据业务逻辑的的重要性划分层级的,而降级一般从最外围服务开始。
网友评论